这两个个函数是什么意思啊 ??
public void Anqx(System.Web.UI.Page WebForm)
{
string[] str = new string[] { "" };
if (WebForm.Request.QueryString["id"] != null)
{
string lmid = WebForm.Request.QueryString["id"].ToString();
string strsql = "declare @a varchar(3000) set @a='' select @a=@a+gnkjname+',' from xt_qxsz a,XT_MKCZGN b where a.userid='" + Session["UserID"].ToString() + "' and a.mkid=b.mkid and a.mkid='" + lmid + "' and a.gnid=b.gnid select @a";
DataSet ds = this.Select(strsql);
if (ds.Tables[0].Rows.Count > 0)
{
str = ds.Tables[0].Rows[0][0].ToString().Split(',');
}
}
AnqxKz(WebForm, str);
}
private void AnqxKz(System.Web.UI.Control control, string[] str)
{
foreach (Control ct in control.Controls)
{
if (ct is ImageButton)
{
string Conid = ct.ClientID;
if (Conid != "btnExit" && Conid != "btnRefresh")
{
ct.Visible = false;
}
for (int i = 0; i < str.Length; i++)
{
if (Conid == str[i])
{
ct.Visible = true;
break;
}
}
}
else
{
AnqxKz(ct, str);
}
}
}
[解决办法]
Anqx 执行查询,得到记录集中第一个第一列的值,然后调用AnqxKz
AnqxKz 遍历页面上的控件,如果页面上控件的ID存在与查询出来的ID列表中,那么将该控件显示出来
[解决办法]
在数据中 找了一个叫gnkjname的值的集合,遍历WebForm窗体里面的所有控件,并且根据控件的ClientID值 和 gnkjname返回值 集合区匹配,完全匹配就显示该控件,否则不显示(多次调用自己属于递归)
[解决办法]
Anqx中的参数是一个当前页面对象:而这个WebForm.Request.QueryString["id"]应该是,某个请求Get方式提交到当前页面的一个编号,也就是mkid;然后根据条件查询出xt_qxsz,XT_MKCZGN 这两种表关联的所有纪录。
再调用AnqxKz这个方法:这个方法传进来两个参数,一个是当前页面对象,一个是查询出的以逗号相隔开所有gnkjname名称。然后选好当前页面WebForm对象的所有控件,找出是ImageButton控件,在判断ImageButton这个控件是不是该隐藏。而
else
{
AnqxKz(ct, str);
}
这个起到一个递归调用的作用,方法获取不全WebForm当前页面的所有ImageButton或者其它需要的控件。