如何从代码隐藏访问和设置跨度控件的属性

本文关键字:控件 属性 设置 代码 隐藏 访问 | 更新日期: 2023-09-27 18:27:51

这就是我使用标签控件所能做的。

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找到服务器端控件。也就是说,您只能使用runat="server"e.Row.FindControl访问控件。无法访问没有runat="server"的默认HTML标记。

还可以看看下面的SO文章"如何在代码背后访问span id"。

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

当你想格式化你的输出时,你可以使用

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

有关详细信息,请参阅MSDN中的标准数字格式字符串。