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>

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

4

2 回答 2

8

尝试这个:

简短而简单

参考

你的复选框

<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='<%#Eval("StudentID")%>'

比后面的代码

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


}
于 2013-08-26T08:13:30.067 回答
-1
var item = (RepeaterItem) sender.NamingContainer;

更改为:

var item = (RepeaterItem) chk.NamingContainer;
于 2020-05-04T11:47:06.453 回答