日期:2014-05-18  浏览次数:20522 次

如何找继承母板页的页面上的TEXTBOX?
当前页为<%@ Page Language="C#" MasterPageFile="~/Page/General/General.master" AutoEventWireup="true" CodeFile="Edit.aspx.cs" Inherits="Page_jinjiport_Edit" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cph" Runat="Server">
<asp:textbox></asp:textbox>
</asp:Content>
我想遍历取出此页所有的TEXTBOX

以前写过一个自身带FORM的 是可以的,可是在这个母处版页里就不行了 foreach (Control crl in form1.Controls)

  {
  if (crl.GetType() == typeof(TextBox))
  {
  TextBox tx = (TextBox)crl;
  if(tx.ID!="tbyear")
  if (tx.Text == "" || tx.Text == null)
  {
  tx.Text = "0";


  }
  ht.Add("t" + i, tx.TabIndex);
  ht1.Add("v" + i, tx.Text);
  i++;
  }

------解决方案--------------------
你要调用MasterPage中的Form才行, 比如你的MasterPage类名为GeneralMasterPage.

GeneralMasterPage gmp = this.Master as GeneralMasterPage;
foreach (Control crl in gmp.form1.Controls) {
...
}

其实没必要, 取this的Controls就可以得到.
foreach(Control crl in this.Controls) {
...
}