【发布时间】:2019-12-21 03:45:39
【问题描述】:
我在 asp.net 页面中有一个 GridView,如下所示:
Checkbox Name Link
[] MainName myLink
[] -somename1 myLink1
[] -somename2 myLink2
[] --somename2.1 myLink2.1
[] MainName2 mylink3
[] -somename3 Mylink4
请注意,在命名模式中,“主要标题”不包括短划线字符作为起始字符,而其他标题有。
我想要的是,当我单击“MainName”附近的复选框时,我需要自动选择属于所选 MainName 的所有子行。假设我点击第一行的复选框:MainName,那么应该可以看到:
Checkbox Name Link
[checked] MainName myLink
[checked] -somename1 myLink1
[checked] -somename2 myLink2
[checked] --somename2.1 myLink2.1
[] MainName2 mylink3
[] -somename3 Mylink4
我使用 C# 来管理它,如下所示:
protected void SelectCheckBox_OnCheckedChanged(object sender, EventArgs e)
{
System.Web.UI.WebControls.CheckBox chk = sender as System.Web.UI.WebControls.CheckBox;
GridViewRow row = (GridViewRow)chk.NamingContainer;
bool checkVal = false;
String cellText = row.Cells[2].Text;
if (cellText.IndexOf('-') < 0)
{
foreach (GridViewRow r in dgMenuItems.Rows)
{
if (row == r)
{
checkVal = true;
}
if (checkVal)
{
if (r.Cells[2].Text.IndexOf('-') < 0)
{
break;
}
else
{
var cb = (System.Web.UI.WebControls.CheckBox)r.FindControl("chbSelect");
cb.Checked = true;
}
}
}
}
}
但我想在 JavaScript 或 JQuery 中处理它,而不是在服务器端。在这方面的任何帮助或建议将不胜感激。
【问题讨论】:
标签: javascript jquery asp.net gridview asp.net-3.5