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

gridview 动态绑定HyperLinkField 请高手赐教急!!

问题描述:

我想在GRIDVIEW里动态绑定列,列表头及绑定数据库字段存在HASHTABL里面,其中有一超连接字段,单击超连接,进入新页面B,同时把所单击列的值传入新页面B.

代码如下:

    /// <summary>
    /// 作者:SARA
    /// 日期:2009-11-10
    /// 描述:设置GrivdView显示样式
    /// </summary>
    /// <param name="gridview1">GrivdView对象</param>
    /// <returns name="fieldsname">GV列表头集合</returns> 
    /// <returns name="tablename">表名</returns>
    public void GetGridViewStyle(ref GridView gridview1, Hashtable fieldsname, String tablename)
    {
        //获取hashtable迭代接口
        IDictionaryEnumerator de = fieldsname.GetEnumerator();

        gridview1.AutoGenerateColumns = false;

        gridview1.DataKeyNames = new string[] { "CompanyName" };
        DataTable companyinfo = new DataTable();

        Entity.CompanyInfo c = new Entity.CompanyInfo();

        while (de.MoveNext())
        {
            if (de.Key.ToString() == "CompanyName")//超连接字段绑定
            {
                //超连接列
                HyperLinkField hy = new HyperLinkField();
                hy.HeaderText = de.Value.ToString();
                hy.DataTextField = de.Key.ToString();
                hy.Target = "_blank";
                //传入所单击列的值
                hy.NavigateUrl = "~/CompanySigleEdit.aspx?number='{0}'";
                hy.NavigateUrl = "~/CompanySigleEdit.aspx";
                //   hy.NavigateUrl = "<%# ~\"/CompanySigleEdit?id=" + DataBinder.Eval("CompanyName").ToString () + "%>";
                //  hy.DataTextFormatString = " ~/CompanySigleEdit.aspx?number={0}";
                gridview1.Columns.Add(hy);
            }
            else if (de.Key.ToString() == "BirthDay" || de.Key.ToString() == "TeBieDay")  //日期字段绑定
            {
                BoundField bf = new BoundField();
                bf.HeaderText = de.Value.ToString();
                bf.DataField = de.Key.ToString();             

            }
            else if (de.Key.ToString() == "CompanyMap")
            {
                BoundField bf = new BoundField();
                bf.HeaderImageUrl = "";

                bf.HeaderText = de.Value.ToString();
                bf.DataField = de.Key.ToString();

                gridview1.Columns.Add(bf);
            }
        }

        EntityAction.CompanyInfoAction cia = new EntityAction.CompanyInfoAction();
        gridview1.DataSource = cia.GetComapnyInfAll(tablename);//取得表记录
        gridview1.DataBind();  //指定数据源                  

    }
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,