最盡在做一個項目要求實現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("沒有選擇數據操作無效!");
}
}