簡體   English   中英

如何從后面的代碼訪問和設置跨度控件的屬性?

[英]How can I access and set the properties of span control from code behind?

這就是我能夠使用標簽控件執行的操作。

Label mylabel = (Label)e.Row.FindControl("label1");
myLable.Text="";

我想對跨度和輸入控件執行相同的操作。 這是我嘗試過的方法,但是不起作用。

var myspan = e.Row.FindControl("span1");
TextBox myinput=(TextBox)e.row.FindControl("Textbox1");

這是我的aspx代碼:

<asp:TemplateField HeaderText="abc" SortExpression="val1">
    <ItemTemplate>
        <span id='myspan<%#Eval("Sno")%>'>
            <%#Eval("abc")%></span>
    </ItemTemplate>
    <ItemStyle HorizontalAlign="Right" Width="100px" />
    <HeaderStyle HorizontalAlign="Center" Width="100px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="abc2" SortExpression="val2">
    <ItemTemplate>
        <input id='mytextBox<%#Eval("Sno")%>' type="text"
            onkeypress="return isNumberKey(event,this);" onchange="return RowUpdategrid(event,this,<%#Eval("Sno")%>,'<%#Eval("val3") %>');this.oldvalue = this.value;"
            onfocus="this.oldvalue = this.value;" maxlength="12" class="GridText" style="width: 70px"
            value='<%#Eval("CurrentYearLiquidatedPlan")%>' onpaste="return false" disabled="disabled" />
    </ItemTemplate>
    <ItemStyle HorizontalAlign="Right" />
    <HeaderStyle HorizontalAlign="Center" Width="105px" />
</asp:TemplateField>

您只能通過e.Row.FindControl找到服務器端控件。 這意味着,您只能通過e.Row.FindControl訪問帶有runat="server" e.Row.FindControl 沒有runat="server"默認HTML標簽無法訪問。

也可以看看下面的SO Post“ 如何在后面的代碼中訪問span ID ”。

<span id="expSpan" runat="server"></span>

當您要格式化輸出時,可以使用

<span id='myspan<%#Eval("Sno")%>'><%#Eval("abc", "0:n3")%></span>

請查看MSDN中的標准數字格式字符串以了解詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM