数据绑定客户端checkbox问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 10:12:16
前台代码如下:
<asp:label id="Label8" runat="server" Width="100%"> 兴趣:</asp:label></td>
<td width="70%">
<asp:datalist id="dl_Hobby" runat="server" RepeatColumns="5">
<ItemTemplate>
<input type="checkbox" name="chk_hobby" value='<%#DataBinder.Eval(Container.DataItem,"hobby_desc")%>'>
<asp:Label Text='<%#DataBinder.Eval(Container.DataItem,"hobby_desc")%>' runat="server" ID="Label10">
</asp:Label>
</ItemTemplate>
</asp:datalist>
数据库表名是msm_membership_info,对应的列是eme_hobby,这列的内容是以","号隔开的一些爱好集合.
我想实现通过存储过程把所选人物信息的eme_hobby列取出并绑定到checkbox上,跟据获得的值把相应的checkbox选上。因为这个页面主要是实现察看会员资料的。

第一步:将checkbox转为服务端控件
第二步:将以“,”分割的数放于Hashtable 中
/// <summary>
/// 字符串以“,”分组
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public Hashtable getStringGroup(string str)
{
string[] strings = str.Split(',');
Hashtable hs = new Hashtable();
for (int i = 0; i < strings.Length; i++)
{
hs.Add(strings[i].ToString(), strings[i].ToString());
}
return hs;
}
第三步:这里我默认你已经将数据源封装为Data对象的对象数组后,绑定于当前DataList
protected void dl_Hobby_ItemDataBound(object sender, DataListItemEventArgs e)
{
CheckBox checkbox = (CheckBox)e.Row.Cells[1].FindControl("chk_hobby");
Data ps = e.Row.DataItem as Data;
//roidStr为","分割的字符串
roidStr = Data.eme_hobby;
Hashtable hs = this.