我是实现 在点击gridview的选择之后获取他的用户id,然后利用id来查询用户权限表中的信息,根据数据库中的信息,使treeview控件前面的复选框打钩,可是我运行的时候点击选择,treeview没反应~~~求大虾!!下面是代码:
protected void BindTreeRoot(int userid1, TreeNodeCollection treenode)
{
string sql = "";
foreach (TreeNode nodes in treenode)
{
//查找gridview中选择的那个用户所拥有的权限名称
sql = "select qxname from userqx where userid='" + userid1 + "'"; DataView dv = OADBHelper.GetDataTable(sql).DefaultView; foreach (DataRowView drv in dv)
{ foreach (TreeNode node in treenode)
{ if (drv["qxname"].ToString() == node.Value.ToString())
{
node.Checked = true;
}
BindTreeRoot(userid1, node.ChildNodes); }
}
}
}//下面是我执行选择之后
protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)
{
GridViewRow row = GridView1.SelectedRow;
Session["userid"] = row.Cells[0].Text;
Session["username"] = row.Cells[1].Text;
int userid2 = Convert.ToInt32(Session["userid"]);
BindTreeRoot(userid2, TreeView2.Nodes);
}GridViewtreeview复选框勾选
protected void BindTreeRoot(int userid1, TreeNodeCollection treenode)
{
string sql = "";
foreach (TreeNode nodes in treenode)
{
//查找gridview中选择的那个用户所拥有的权限名称
sql = "select qxname from userqx where userid='" + userid1 + "'"; DataView dv = OADBHelper.GetDataTable(sql).DefaultView; foreach (DataRowView drv in dv)
{ foreach (TreeNode node in treenode)
{ if (drv["qxname"].ToString() == node.Value.ToString())
{
node.Checked = true;
}
BindTreeRoot(userid1, node.ChildNodes); }
}
}
}//下面是我执行选择之后
protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)
{
GridViewRow row = GridView1.SelectedRow;
Session["userid"] = row.Cells[0].Text;
Session["username"] = row.Cells[1].Text;
int userid2 = Convert.ToInt32(Session["userid"]);
BindTreeRoot(userid2, TreeView2.Nodes);
}GridViewtreeview复选框勾选
public class OADBHelper
{
public static DataTable GetDataTable(string sql)
{
string con = @"Data Source=XP-201308090943;Initial Catalog=立可达模拟;User ID=sa;Pwd=huang";
SqlConnection mycon = new SqlConnection(con);
SqlCommand mycmd = new SqlCommand(sql, mycon);
mycon.Open();
mycmd.ExecuteNonQuery();
SqlDataAdapter sda = new SqlDataAdapter(sql, mycon);
DataSet ds = new DataSet();
sda.Fill(ds, "userqx");
DataTable table = ds.Tables["userqx"];
mycmd.Dispose();
return table;
}
}
在BindTreeRoot()和SelectedIndexChanged1的代码第一行各设一个断点,
然后勇敢地开始你的调试之旅吧