怎么获取repeater内的CheckBox选中的行的值
我在前台repeater(rpInfo)的一列里绑定了ID,加了CheckBox(ckbselectID)控件,我要怎么把我选中的行的ID取出来?下面是我的代码,要把id...
我在前台repeater(rpInfo)的一列里绑定了ID,加了CheckBox(ckbselectID)控件,我要怎么把我选中的行的ID取出来?下面是我的代码,要把id取出来放session里,接下来要怎么写?还是我的逻辑有问题?
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
Session.Remove("sess");
}
}
#region 绑定数据源
/// <summary>
/// 绑定repeater的数据源
/// </summary>
private void BindData()
{
string sql = "select * from FWD_CmInfo";
rpInfo.DataSource = DbHelperSQL.Query(sql).Tables[0];
rpInfo.DataBind();
}
#endregion
#region
private void GetSession()
{
foreach (RepeaterItem item in rpInfo.Items)
{
CheckBox ckbID = (CheckBox)item.FindControl("rpInfo");
if (ckbID.Checked == true)
{
Session["sess"]=?????;
}
}
}
#endregion
CheckBox ckbID = (CheckBox)item.FindControl("rpInfo")应该是 CheckBox ckbID = (CheckBox)item.FindControl("ckbSelect"); 展开
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
Session.Remove("sess");
}
}
#region 绑定数据源
/// <summary>
/// 绑定repeater的数据源
/// </summary>
private void BindData()
{
string sql = "select * from FWD_CmInfo";
rpInfo.DataSource = DbHelperSQL.Query(sql).Tables[0];
rpInfo.DataBind();
}
#endregion
#region
private void GetSession()
{
foreach (RepeaterItem item in rpInfo.Items)
{
CheckBox ckbID = (CheckBox)item.FindControl("rpInfo");
if (ckbID.Checked == true)
{
Session["sess"]=?????;
}
}
}
#endregion
CheckBox ckbID = (CheckBox)item.FindControl("rpInfo")应该是 CheckBox ckbID = (CheckBox)item.FindControl("ckbSelect"); 展开
1个回答
展开全部
每一个sessionid对应只能存储一个值,也就是当你foreach的时候,存在多个选中项的时候,每遍历一个选中项,session["sess"]都会被替换成当前选中项的值。
private void GetSession()
{
List<string> CBIDList=new List<string>();
foreach (RepeaterItem item in rpInfo.Items)
{
CheckBox ckbID = (CheckBox)item.FindControl("ckbSelect");
if (ckbID!=null&&ckbID.Checked == true)
{
CBIDList.Add(ckbID.ID);
}
}
Session["sess"]=CBIDList;
}
private void GetSession()
{
List<string> CBIDList=new List<string>();
foreach (RepeaterItem item in rpInfo.Items)
{
CheckBox ckbID = (CheckBox)item.FindControl("ckbSelect");
if (ckbID!=null&&ckbID.Checked == true)
{
CBIDList.Add(ckbID.ID);
}
}
Session["sess"]=CBIDList;
}
追问
我是要做编辑,要把ID放到session里传到编辑页面,然后编辑页面填充这个ID对应的数据库数据,所以不用考虑多个ID,我会让用户只能选择一行的。如果是这样,我的原代码要怎么改呀
追答
给你的Repeater加一个事件DataBound。 在绑定数据的时候给每一行的编辑按钮添加事件, 具体的业务处理都放到编辑按钮的事件里处理就行了。
可以参考这个。
<code>http://www.cnblogs.com/nniixl/articles/1333462.html</code>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询