中继器内的复选框,如何在检查更改功能中获取命令名称值

Vin*_*oth 4 asp.net asp.net-4.5

我在我的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>
Run Code Online (Sandbox Code Playgroud)

当复选框值改变时,我是在"chkStudentStatus_CheckedChanged"函数中获取Command Name值

san*_*mar 6

试试这个:

简短而简单

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>
Run Code Online (Sandbox Code Playgroud)

在代码背后

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


}
Run Code Online (Sandbox Code Playgroud)

你可以给任何命名属性,即xyz ='<%#Eval("StudentID")%>'

比后面的代码

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


}
Run Code Online (Sandbox Code Playgroud)