GridView实现动态数据的超连接 现在有一个需求在主页分块,实现点击主题,得到查询数据(SQL是写在数据库里面) 这样有两个问题: (1)GridView中的超连接如何处理 (2)权限管理的(注意要灵活)
网络上查询资料: gridview超链接列链接方法 (转贴) 带多个参数:
另一种后台编写方法: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { //在不可见之前做很多事情~ ~~~
if (e.Row.RowType == DataControlRowType.DataRow) { //链接~ ((HyperLink)e.Row.Cells[1].FindControl("HyperLink1")).NavigateUrl = string.Format("javascript:void window.open('http://DTSFLOWER/module/mailroute.aspx?FORM_KIND={0}&FORM_NO={1}&FORM_APPROVE_ID={2}&LOGON_ID={3}&MAIL_TYPE={4}');", e.Row.Cells[2].Text,e.Row.Cells[0].Text ,e.Row.Cells[3].Text,e.Row.Cells[4].Text,e.Row.Cells[5].Text ); //小提示~ e.Row.Cells[1].ToolTip = "表单号:" + e.Row.Cells[0].Text;
//VISIBLE=FALSE~~~ for (int i = 0; i < e.Row.Cells.Count; i++) { if (i != 1) { e.Row.Cells[i].Visible = false; } } }
}
原文地址:http://www.cnblogs.com/vegaslee/archive/2008/03/20/1114925.html
资料二: GridView中的超级链接,可以设置一个模版列,放入超级链接的控件,设置绑定参数即可。
数据绑定方式有两种,如下示例:
Eval方式 <%# Eval("id") %>
Bind方式 <%# Bind("id","~/info.aspx?id={0}") %>
推荐使用第一种方式,可以在一个<%# %>里放入多个绑定,而第二种只能如此绑定一个值
<%# Eval("id") + ":" + Eval("name")%>
做超级链接的控件,我们也有多种选择:
1 asp:LinkButton
示例
runat="server"><%# "LinkButton方式绑定:" + Eval("id") %>
2 asp:HyperLink
示例
3 a标签
示例
a标签:<%# Eval("id") + ":" + Eval("name")%>
链接js事件:<%# Eval("id") %> 该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=26913
我的做法:
二:权限管理 原数据表: OA_SubjectQuery : ID,subject,createtime,createby 如果直接增加字段可以吗?也许可以.... 直接增加userid判断,可以吗?不够,还得设置一个组. 想想还是不行: 因为几个人几个部门都可以看的如何处理? 办法还是有的: 单独建立一个表去处理这个问题: 新增数据表: OA_SubjectQuery:Topicid,userid,groupid 好像还是不行? 在SQL里面用or 去处理可能会慢一点,但数据量很小几乎没关系! 条件直接用session保存
代码: int Userid = 0; if (Session["userid"].ToString()!="") // { Userid = int.Parse(Session["userid"].ToString()); } string User_Sect = string.Empty; if (Session["User_Sect"].ToString()!= "") { User_Sect = Session["User_Sect"].ToString(); } PublicVar.sqlstr = "select ID,subject,subject_sql from OA_SubjectQuery where id in (select distinct topicid from OA_SubjectPurview where userid="+Userid+" or groupcode='"+User_Sect+"')"; GVBind();
protected void GVBind() { //绑定数据到gridview SqlDataAdapter myda = new SqlDataAdapter(PublicVar.sqlstr, sqlcon); DataSet myds = new DataSet(); StringWriter sw = new StringWriter();//测试 sqlcon.Open(); myda.Fill(myds, "OA_SubjectQuery"); GV.DataSource = myds; GV.DataKeyNames = new string[] { "ID" }; GV.DataBind(); sqlcon.Close(); }