关于asp.net DataList的问题(高手帮帮忙呀!) 50

在DataList中读取出N多很多条件(多表)查出后的String类型的name付给CheckBox然后我想获得选中后(可以选很多)的name的Id代码如下!//多表查询... 在DataList中读取出N多 很多条件
(多表)查出后的String类型的name 付给CheckBox
然后我想获得选中后(可以选很多)的name的Id
代码如下!
//多表查询
string sql = "SELECT us.userid,us.username FROM userinfo as us,departinfo as de,branchinfo as bh WHERE us.userstateid=1 and us.departid=de.departid and de.branchid=bh.branchid and us.userstateid=1";
if(!String.IsNullOrEmpty(BranchId))
sql += " and bh.branchId=@branchId";
if (!String.IsNullOrEmpty(DepartId))
sql += " and de.departId=@departId";
if(!String.IsNullOrEmpty(userId))
sql += " and us.userId=@userId";
if (!String.IsNullOrEmpty(userName))
sql += " and us.username=@username";
根据这些条件查出name

页面
<asp:DataList ID="DLUserName" RepeatColumns="3" RepeatDirection="Horizontal" runat="server" Width="269px">
<ItemTemplate>
<asp:CheckBox ID="chUserName" runat="server"></asp:CheckBox>
<asp:Label ID="lblUserNamee" runat="server" Text='<%# Eval("UserName") %>'>
</asp:Label> </ItemTemplate>
</asp:DataList>

如果写的不是很清楚 请见谅!
各位高手朋友帮帮,毕业设计.
后台怎么获得 这些选中的CheckBox的name 的id
小弟很菜...代码写清楚一些`
展开
 我来答
maxbxb1
2009-03-10 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:312
采纳率:0%
帮助的人:127万
展开全部
你的意思是要找到当前行的索引对不对,那就不用那样麻烦了,给你个例子,你自己看看 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{//下面是绑定相关信息的代码。

if (e.CommandName == "xuanze")
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
GridViewRow ro = (GridViewRow)((Control)e.CommandSource).Parent.Parent; ;//取得触发命令的当前行
int index = ro.RowIndex;

// e.CommandSource获得当前行触发命令的控件,强转为Control,再找该控件的父控件,就得到Cell,再父控件就得到GridviewRow 然后在下面就对这个row进行相应的操作吧
int NewsID = Convert.ToInt32(e.CommandArgument);
ViewState["id"] = NewsID.ToString();
Panel1.Visible = true;
//Panel2.Visible = true;
//readmany(NewsID);
readinf(NewsID);
}
}

}这个是个GridView的,datalist道理是一样的
//单选按钮
protected void CheckBox11_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox11");

if (cbox.Checked == true)
{

Panel4.Visible = true;
ViewState["ak"] = GridView1.DataKeys[i].Values["family_id"].ToString();
//GridViewRow rl = (GridViewRow)((CheckBox)sender).Parent.Parent;//获取当前控件的索引值
// // int index11 = rl.RowIndex;
}

}

}你把上面2个结合起来用就没问题了
liunight111
2009-03-10 · TA获得超过168个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:0
展开全部
你好:

你看这样可以满足你的要求么?

int j = 0;
int[] selected = new int[DataList1.Items.Count];
for (int i = 0; i < DataList1.Items.Count; i++)
{
CheckBox box =((CheckBox)(DataList1.Items[i].FindControl("CheckBox1")));
if (box.Checked) { selected[j]=i; j++; }

}
我觉的你要是取得数据库中的ID的话SQL语句中也要有ID要不根据DataList的ID不一定项符合
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
personname
2009-03-10 · TA获得超过726个赞
知道小有建树答主
回答量:586
采纳率:50%
帮助的人:342万
展开全部
for (int i = 0; i < DLUserName.Items.Count; i++)
{
CheckBox cbx = (CheckBox)dlMod.Items[i].FindControl("chUserName");
if (cbx.Checked)
{
//选中
}
else
{
//未选中
}
}

测试是可以用的

和maxbxb1原理一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佛含恩4592
2009-03-12 · TA获得超过207个赞
知道答主
回答量:211
采纳率:0%
帮助的人:112万
展开全部
你在赋值的时候肯定是循环赋的!
那么在取值的时候也就循环取值!

能取到name,id应该不成问题的吧 ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式