当前位置:编程学习 > C#/ASP.NET >>

帮我看段asp.net的代码。

这样的一个后台导航权限的界面,我是先检索的导航模块表A,存着所有的导航,然后在给某一个用户授权的时候,先把A中的所有检索绑定到这个页面,然后再去B用户权限表检索这个用户拥有与A表模块关联唯一ID,然后进行与这个界面的第一列那些数字比较、相同的话就开始在在后面的Checkbox进行比较打钩。

但是我怎么去比较,界面所有的序号和这个用户拥有的导航ID?

 

怎么写? 

if (Request.QueryString["groupid"] != null)
        {
            DataTable dt=Index_Gropperm.Index_GetGrouppermforgid(Convert.ToInt32(Request.QueryString["groupid"].ToString()));
            int gridnum = this.GridMenuView.Rows.Count;
            for (int i = 0; i < gridnum; i++)
            {
                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    if (GridMenuView.Rows[i].Cells[0].ToString() == dt.Rows[i]["Index_Menusid"].ToString())
                    {

                    }
                }
            }
        }

追问:不是的  我的GridMenuView这是一个datalist 绑定的时候取的A表(所有菜单表),

而 dt.Rows[i]["Index_Menusid"].ToString())这个dt是取的B表(用户分配权限菜单表)。

他们并不一样行列都一样的,假如B表没有张三用户的权限,那么就没办法进行比较的。

答案:既然您是逐行比较,其实并没有那么复杂,只要单循环即可(因为你的DataTable绑定到GridView,行数肯定是一致的),那么:

for (int i = 0; i < gridnum; i++)
            {

                  if(GridMenuView.Rows[i].RowType == DataControlRowType.DataRow)

                  {
               (GridMenuView.Rows[i].Cells[CheckBox所在的索引].Controls[0] as CheckBox).Checked = GridMenuView.Rows[i].Cells[0].ToString() == dt.Rows[i]["Index_Menusid"].ToString();

                  }
                }

上一个:web servers 在asp.net中怎么用
下一个:关于ASP.NET中的foreach语句

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,