加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 04:26:26 所属栏目:asp.Net 来源:网络整理
导读:我有一个.aspx页面,它在表格中创建一列复选框,使用ID来命名 asp:TemplateField HeaderText="Select" ItemTemplate asp:CheckBox ID="testCheck" runat="server" AutoPostBack="true" / /ItemTemplate /asp:TemplateField 稍后在代码的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;

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读