当前位置: 代码迷 >> ASP.NET >> HyperLinkField 怎么根据数据库字段值跳转
  详细解决方案

HyperLinkField 怎么根据数据库字段值跳转

热度:9586   发布时间:2013-02-25 00:00:00.0
HyperLinkField 如何根据数据库字段值跳转?
我用HyperLinkField 在GridView中实现修改页面跳转功能,用HyperLinkField 传过去id编号,然后数据库有个字段叫状态,如果状态是2,就不跳转,不是2就跳转到修改页面,怎么实现啊,请各位指导一下

------解决方案--------------------------------------------------------

加个 隐藏的label 存状态 后台 判断 label 的值 在处理跳转
------解决方案--------------------------------------------------------
在页面上使用?表达式进行判断
------解决方案--------------------------------------------------------
例子1
HTML code
<%@ Page Language="C#" EnableViewState="false" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">    // 计算数据,完全可以从数据库取得    System.Data.DataTable CreateDataSourceByXianhuiMeng()    {        System.Data.DataTable dt = new System.Data.DataTable();        dt.Columns.Add(new System.Data.DataColumn("Id", typeof(System.Int32)));        dt.Columns.Add(new System.Data.DataColumn("State", typeof(System.String)));        for (int i = 0; i < 8; i++)        {            dt.Rows.Add(new Object[] { i, i.ToString() });        }        return dt;    }    protected void Page_Load(object sender, EventArgs e)    {        GridView1.DataSource = this.CreateDataSourceByXianhuiMeng();        GridView1.DataBind();    }    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)    {        if (e.Row.RowType == DataControlRowType.DataRow)        {            String State = DataBinder.Eval(e.Row.DataItem, "State").ToString();            HyperLink h = e.Row.Cells[1].Controls[0] as HyperLink;            if (State.Equals("2"))            {                h.Visible = false;            }        }    }</script><html><head>    <title></title></head><body>    <form id="form1" runat="server">    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="GridView1_RowDataBound">        <Columns>            <asp:BoundField DataField="id" HeaderText="测试的" />            <asp:HyperLinkField DataNavigateUrlFields="Id" DataNavigateUrlFormatString="show.aspx?id={0}"                DataTextField="State" />        </Columns>    </asp:GridView>    </form></body></html>