关于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
小弟很菜...代码写清楚一些` 展开
(多表)查出后的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
小弟很菜...代码写清楚一些` 展开
4个回答
展开全部
你的意思是要找到当前行的索引对不对,那就不用那样麻烦了,给你个例子,你自己看看 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个结合起来用就没问题了
{//下面是绑定相关信息的代码。
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个结合起来用就没问题了
展开全部
你好:
你看这样可以满足你的要求么?
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不一定项符合
你看这样可以满足你的要求么?
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不一定项符合
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (int i = 0; i < DLUserName.Items.Count; i++)
{
CheckBox cbx = (CheckBox)dlMod.Items[i].FindControl("chUserName");
if (cbx.Checked)
{
//选中
}
else
{
//未选中
}
}
测试是可以用的
和maxbxb1原理一样
{
CheckBox cbx = (CheckBox)dlMod.Items[i].FindControl("chUserName");
if (cbx.Checked)
{
//选中
}
else
{
//未选中
}
}
测试是可以用的
和maxbxb1原理一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在赋值的时候肯定是循环赋的!
那么在取值的时候也就循环取值!
能取到name,id应该不成问题的吧 ?
那么在取值的时候也就循环取值!
能取到name,id应该不成问题的吧 ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询