这个是根据某MVP达人的例子写的。
1,JS:
//將選中的item保存在txtItem中以備保存,修改使用
function AddRemoveValues(oChk) {
//Attention:保存的值應該具有唯一性,這樣才不會替換錯誤的項
if(oChk.checked)
{
Form1.txtItem.value+=oChk.value+";";
}
else
{
Form1.txtItem.value = Form1.txtItem.value.replace( oChk.value+";","");
}
}
2.HTML:
<input runat="server" type="hidden" id="txtItem">
<asp:TemplateColumn HeaderText="請選擇" Visible="False">
<ItemTemplate>
<input type=checkbox runat=server id="ChkSelect" οnclick="AddRemoveValues(this)" value='<%#DataBinder.Eval(Container.DataItem,"Item")%>' NAME="ChkSelect"/>
</ItemTemplate>
<HeaderStyle Font-Size="9pt" Wrap="False" ForeColor="White"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
<FooterStyle Wrap="False"></FooterStyle>
</asp:TemplateColumn>
3..VB
Dim a() As String = Split(txtItem.Value, ";")
For i = 0 To UBound(a)
For j = 0 To DataGrid4.Items.Count - 1
If a(i).IndexOf(DataGrid4.Items(j).Cells(1).Text) >= 0 Then
Dim ChkSelected As HtmlInputCheckBox = New HtmlInputCheckBox
ChkSelected = CType((DataGrid4.Items(j).Cells(0).FindControl("ChkSelect")), HtmlInputCheckBox)
ChkSelected.Checked = True
next
next
基本逻辑很简单,就是在数据库里有两个表,第一个表示所有的item,第二个是已经选中并保存的item。将第二个表中的item捞出来,每个item用";"隔开,然后与datagrid的每项item比较,如果相等的话,就在选中该项的checkbox
恩恩。。基本上这样。
转载于:https://www.cnblogs.com/yeskele/archive/2005/09/07/231576.html