最尽在做一个项目要求实现gridview中checkbox 模板列单选操作;同时能够通过cs代码检查是否存在checkbox为选中状态。我在网络上查找了许多的代码,很多只能实现其中的一个要求;我通过研究最终不负有心人,找到了决绝方案。下面把实现的代码附在 后面,希望对遇到同样问题的朋友予以帮助
js代码:
function signcheck(cbox)
{
var obj = document.getElementsByTagName("input");
for(var i=0;i<obj.length;i++)
{
if(obj[i].type=="checkbox")
{
obj[i].checked =false;
}
}
var sid = cbox.id;
document.getElementById(sid).checked=true;
}
gridview模板列代码:
<asp:TemplateField ShowHeader="False" HeaderText="选择">
<ItemTemplate>
<asp:CheckBox ID="CheckboxSign" runat="server" />
</ItemTemplate>
</asp:TemplateField>
gridview数据行数据加载:
protected void GridViewDuckSeed_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
CheckBox cb = (CheckBox)e.Row.FindControl("CheckboxSign");
if (cb != null)
cb.Attributes.Add("onclick", "signcheck(" + cb.ClientID + ")");
}
catch
{
;
}
}
通过选择行执行删除操作:
protected void btnDelete_Click(object sender, EventArgs e)
{
string DuckNum = "", IsValid = "";
foreach (GridViewRow row in GridViewDuckSort.Rows)
{
CheckBox CheckboxSign = row.FindControl("CheckboxSign") as CheckBox;
if (CheckboxSign.Checked == true)
{
DuckNum = row.Cells[1].Text.ToString();
IsValid = row.Cells[3].Text.ToString();
}
}
if (!string.IsNullOrEmpty(DuckNum))
Master.MessageBox("可执行删除操作!");
else
Master.MessageBox("没有选择数据操作无效!");
}
}