免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
FINDCONTROL的詳細介紹

FindControl的使用方法 Control.FindControl (String):在當前的命名容器中搜索帶指定 id

參數(shù)的服務器控件。(有點類似javascript中的getElementById(string))

簡單的例子:

 <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server">TextBox</asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button"

OnClick="Button1_Click" />
        <br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
 </form>

如果需要獲得頁面中的"TextBox1",代碼中可以使用this.TextBox1來引用,這里我們使用

FindControl:

    protected void Button1_Click(object sender, EventArgs e)
    {
      //Control c = this.FindControl("TextBox1");
     //TextBox tb= (TextBox)c;
     //FindControl返回的是一個Control類型的控件,需要強制類型轉化成TextBox類型
      TextBox tb=(TextBox)this.FindControl("TextBox1");
      this.Label1.Text = tb.Text;    }

當TextBox1放到其他控件里應該怎么查找呢?

    <div>
      
        <asp:Panel ID="Panel1" runat="server" Height="50px" ;125px">
        <asp:TextBox ID="TextBox1" runat="server">TextBox</asp:TextBox>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <asp:Button ID="Button1" runat="server" Text="Button"

OnClick="Button1_Click" />
        </asp:Panel>
    </div>

當TextBox1放到Panel里,似乎沒什么影響 TextBox tb=(TextBox)this.FindControl

("TextBox1"),當查看生存頁面的HTML代碼是發(fā)現(xiàn),TextBox的ID并沒有改變,所以可以獲得

TextBox1。

<div>
      
        <div id="Panel1" style="height:50px;;">
 
        <input name="TextBox1" type="text" value="TextBoxdsd" id="TextBox1" />
        <span id="Label1">TextBoxdsd</span>
        <input type="submit" name="Button1" value="Button" id="Button1" />
       
</div>
    </div>

當TextBox1放到DataGrid中

<asp:DataGrid ID="dg1" runat="server"

OnSelectedIndexChanged="dg1_SelectedIndexChanged">
        <Columns>
        <asp:TemplateColumn>
        <ItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </ItemTemplate>
        </asp:TemplateColumn>
            <asp:ButtonColumn CommandName="Select" Text="選擇"></asp:ButtonColumn>
        </Columns>
        </asp:DataGrid>

這時候this.FindControl("TextBox1")==null,無法獲得TextBox1,查看生成頁面HTML發(fā)現(xiàn),頁

面有多個

 <input name="dg1$ctl02$TextBox1" type="text" id="dg1_ctl02_TextBox1" />

 <input name="dg1$ctl03$TextBox1" type="text" id="dg1_ctl03_TextBox1" />

TextBox1隱藏了,給DataGrid添加選擇列,通過以下方法獲得被選擇行的TextBox1

    protected void dg1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Control c = this.dg1.Items[this.dg1.SelectedIndex].FindControl("TextBox1");
        //Control c = this.dg1.SelectedItem.FindControl("TextBox1");
        TextBox tb = (TextBox)c;
        tb.Text = "TextBox";
    
    }

  protected void dg1_EditCommand(object source, DataGridCommandEventArgs e)
    {
        TextBox tb = (TextBox)e.Item.FindControl("TextBox1");
        this.Label1.Text = tb.Text.ToString();
    }

如果是在DataGrid的頁眉和頁腳:

 ((TextBox)this.dg1.Controls[0].Controls[0].FindControl("TextBoxH")).Text = "Head";
 ((TextBox)this.dg1.Controls[0].Controls[this.dg1.Controls[0].Controls.Count -

1].FindControl("TextBoxF")).Text = "Footer";

TextBox1在Repeater中

   <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1"

OnItemCommand="Repeater1_ItemCommand">
        <ItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox><%

#DataBinder.Eval(Container.DataItem,"ProductName")%><asp:Button ID="btn"

OnClick="btn_click" runat="server" Text="dddd" /><br />
        </ItemTemplate>
        </asp:Repeater>

通過按鈕來獲得TextBox1:

    protected void btn_click(object sender, EventArgs e)
    {
        //獲得按鈕
        Button btn = (Button)sender;
        TextBox tb = (TextBox)btn.Parent.FindControl("TextBox1");
        tb.Text = "Text";
    }

或者

  foreach (RepeaterItem item in this.Repeater1.Items)
        {
            ((TextBox)item.FindControl("TextBox1")).Text = "Text2";
        }

自定義控件里的TextBox1

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs"

Inherits="WebUserControl" %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

 引用<uc1:WebUserControl ID="WebUserControl1" runat="server" />

獲取TextBox1:

((TextBox)this.WebUserControl1.FindControl("TextBox1")).Text = "userc";

模板頁訪問頁面TextBox1

        //模板頁的TextBox1
        TextBox tbM = (TextBox)this.FindControl("TextBox1");
        //頁面中的TextBox1
        TextBox tbC = (TextBox)this.FindControl("ContentPlaceHolder1").FindControl

("TextBox1");
        tbC.Text = tbM.Text;

頁面使用模板頁的TextBox1

        //模板頁的TextBox1
        TextBox tbM = (TextBox)Master.FindControl("TextBox1");
        //本頁面的TextBox1
        //錯誤的方法:TextBox tbC = (TextBox)this.FindControl("TextBox1");
        TextBox tbC = (TextBox)Master.FindControl

("ContentPlaceHolder1").FindControl("TextBox1");
        tbM.Text = tbC.Text.ToString();

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ListView控件學習系列2-編輯ListView(Edit,Update,Insert...
ASP.NET2.0中用Gridview控件操作數(shù)據(jù)
GridView編輯刪除操作
ASP.Net TextBox里面實現(xiàn)回車觸發(fā)按鈕事件
eval 與 bind 區(qū)別
ASP.Net TextBox只讀時不能通過后臺賦值取值
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服