救命啊!!CSDN的高人们!!我快郁闷死啦!
我有3个数据表 ,一个是用户名单 ,用户名绑定在了dropdownlist。一个是用户权限表,对应用户名的ID和权限ID。
一个是权限表,对应权限ID和权限名字。绑定在了gridview上面
我现在想实现如果点击dropdownlist上面的名字,就会把该名字的权限ID对应到gridview的权限ID并在该行的checkbox显示打上钩。
这个代码上面应该怎么实现啊!!快要死啦! --------------------编程问答-------------------- datagridview绑定权限表.
选中后再进行判断使其选中
你自己已经把实现逻辑给说了.
现在是什么问题.
不会是要具体代码吧! --------------------编程问答-------------------- .。。那个。。判断的代码应该怎么写。。 --------------------编程问答-------------------- 你把代码贴出来,帮你填充吧.
--------------------编程问答-------------------- 我先select 用户权限表的权限ID,然后select权限表ID
然后这个两个ID如果相等就checkbox.checked=true是吗。。 --------------------编程问答-------------------- 额 ,是否这样?
楼主是不是要这样,在 OnRowUpdating事件中处理,传递当前GridView,对比角色中的权限,并显示
SetBitValue(gv, "chkView",pb,Permission.View);
public void SetBitValue(GridView gv, string id, PermissionBase pb, Permission p)
{
if(gv.EditIndex==-1)return;
CheckBox cb = gv.Rows[gv.EditIndex].FindControl(id) as CheckBox;
if (cb == null)
return;
if (cb.Checked)
{
pb.SetBit(p);
}
else
{
pb.Deny(p);
}
} --------------------编程问答-------------------- 在你的dropdownlist的SelectedIndexChanged事件下取用户用户ID或是权限ID.
遍历dgv你应该没有问题吧.
遍历过程中进行比较,相等就选中
以下是选中的代码
[code=C#]DataGridViewCheckBoxCell cbh = (DataGridViewCheckBoxCell)this.DataGridView1.Rows[count].Cells["你的选中列(DataGridViewCheckBoxCell)"];
this.DataGridView1.Rows[count].Cells["你的选中列(DataGridViewCheckBoxCell)"].Value = true;
code] --------------------编程问答-------------------- 。。我的那个代码就只是绑定了一下dropdownlist,还有gridview,往下就不知道怎么写了。。 --------------------编程问答--------------------
。。遍历dgv这是什么啊?怎么你的代码没有sql查询语句啊?。。这样子能行吗。。 --------------------编程问答-------------------- 。。遍历dgv这是什么啊?怎么你的代码没有sql查询语句啊?。。这样子能行吗。。
不知道如何回答你了.
。。我的那个代码就只是绑定了一下dropdownlist,还有gridview,往下就不知道怎么写了。。
你得一步步来.
你先理清实现的思路,写出来.帮你实现吧! --------------------编程问答--------------------
我这么清楚说dropdownlist。。 --------------------编程问答--------------------
那我现在开始了啊。。你一直都在的是把。。 --------------------编程问答-------------------- 关键是你那句sql语句怎么写 --------------------编程问答-------------------- dropdownlist也就是选中后打勾? 我以为你是要选角色列出权限。
dropdownlist的value对应 checkbox的ID,选中后关联? --------------------编程问答-------------------- --------------------编程问答--------------------
对的。。 --------------------编程问答--------------------
select power_id from UserRole where userId=dropdownlist1.selected
select power_id from RoleName
这样子对吗?。。然后用dr读取上面的值进行对比? --------------------编程问答-------------------- 来人啊。。 --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 我来说说
1.dropdownlist的SelectedIndexChanged事件下获得当前选中用户的id,
并查询数据库得到该用户所拥有的权限的id,假设是个List<string> lStr,里面存放的是该用户的权限(字符串什么的都可以),把这个数字设置为属性 私有的,
2.gridview 有一个datarowbound方法 在这个方法里面判断 如果当前行的权限存在于数组中 就设置checkbox的属性为选中状态 代码大概如下
List<string> lStr=new List<string>();
SelectedIndexChanged(。。。){
//查询该用户ID对应的权限
lStr=GetPurviewByUserID(userid);
BindGV();
}
BindGV(){
//查询所有权限绑定gridview
}
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e){
if (e.Row.RowType == DataControlRowType.DataRow){
//这个地方保证该行是数据绑定行 不是表头或者表尾等
DataRowView drv = (DataRowView)e.Row.DataItem;
if(lStr.Contains(drv["PurviewID"].tostring())){//PurviewID是个列名
Checked chchkPurviewk = e.Row.FindControl("chkPurview") as Checked;
//chkPurview 是该行checkedbox控件的id
chchkPurviewk.checked=true;
}
}}
希望能对你有帮助 注意绑定gridview数据源的时候 数据集中要有PurviewID列名
最好下拉框和页面都用
<asp:UpdatePanel ID="up" runat="server" ><ContentTemplate> </ContentTemplate></asp:UpdatePanel>
包裹起来 还有什么疑问可以 加我qq 67780558
--------------------编程问答-------------------- 好的!我现在先把你的方法研究下!今晚回去加你QQ! --------------------编程问答-------------------- 加你QQ没反应。。
补充:.NET技术 , C#