ASP.NET和C#代码中的常量

前端之家收集整理的这篇文章主要介绍了ASP.NET和C#代码中的常量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个.aspx页面,它在表格中创建一列复选框,使用ID来命名
<asp:TemplateField HeaderText="Select">
  <ItemTemplate>
    <asp:CheckBox ID="testCheck"  runat="server" AutoPostBack="true" />
  </ItemTemplate>                   
</asp:TemplateField>

稍后在代码的C#部分,我试图通过使用以下代码检索复选框的值

CheckBox chk = (CheckBox)gridRow.FindControl("testCheck");

理想情况下,我想删除两个字符串并将值保存在一个公共常量中,有没有办法做到这一点?

解决方法

对不起,不,没有办法完全按照自己的意愿行事.你仍然会发现两次出现的字符串:
<asp:CheckBox ID="testCheck"  runat="server" AutoPostBack="true" />

public const string TestCheckName = "testCheck";

后来

CheckBox chk = (CheckBox)gridRow.FindControl(TestCheckName );

请注意,问题不在于ASP.NET标记语法那么多常量.你可以这样做:

<asp:CheckBox ID="<%= TestCheckName %>"  runat="server" AutoPostBack="true" />

但这似乎有点傻.

好吧,这根本不起作用,这就是原因:

在CheckBox的声明中,testCheck不仅仅是一个字符串.如果是字符串,那么<%#%>数据绑定的语法可行.在DataBinding事件期间,该属性将设置为该字符串值.

但是,ID属性不仅仅是一个字符串属性 – 它是设计器和页面解析器用于创建具有该名称的字段的内容.因此,必须将其设置为常量值.

类比将是这样的代码

protected CheckBox testCheck;

您不能使用字符串表达式来创建类成员的名称.

猜你在找的asp.Net相关文章