【问题标题】:Check box inside repeater , How to get command name value in the check changed function中继器内的复选框,如何在检查更改功能中获取命令名称值
【发布时间】:2020-05-04 20:25:58
【问题描述】:

嗨,我的 asp.net listview 项目模板中有上面的 html 标记,

<td> 
<asp:CheckBox runat="server" ID="chkStudentStatus"  Text='<%# GetStatusString(Eval("StudentStatus").ToString()) %>' CommandName='<%#Eval("StudentID")%>' OnCheckedChanged="chkStudentStatus_CheckedChanged" Checked='<%#Eval("StudentStatus") %>'  AutoPostBack="True" />
</td>

当复选框值更改时,我是在“chkStudentStatus_CheckedChanged”函数中获取命令名称值

【问题讨论】:

    标签: asp.net asp.net-4.5


    【解决方案1】:

    试试这个:

    短小精悍

    Refrence

    你的复选框

    <td> 
    <asp:CheckBox runat="server" ID="chkStudentStatus"  Text='<%# GetStatusString(Eval("StudentStatus").ToString()) %>' CommandName='<%#Eval("StudentID")%>' OnCheckedChanged="chkStudentStatus_CheckedChanged" Checked='<%#Eval("StudentStatus") %>'  AutoPostBack="True" />
    </td>
    

    在代码后面

    protected void chkStudentStatus_CheckedChanged(object sender, EventArgs e)
    {
        var chk = (CheckBox)sender;
        var studentID = chk.Attributes["CommandName"];
    
    
    }
    

    您可以提供任何命名属性,即 xyz=''

    比 在后面的代码中

    protected void chkStudentStatus_CheckedChanged(object sender, EventArgs e)
    {
        var chk = (CheckBox)sender;
        var studentID = chk.Attributes["xyz"];
    
    
    }
    

    【讨论】:

    • 这可行,但请记住,添加到 Attributes 集合的数据将在包装器 标记中呈现。如果要将属性附加到复选框本身,则必须使用 InputAttributes 而不是 Attributes
    【解决方案2】:
    var item = (RepeaterItem) sender.NamingContainer;
    

    更改为:

    var item = (RepeaterItem) chk.NamingContainer;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-11
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      相关资源
      最近更新 更多