日期:2014-05-18  浏览次数:20482 次

dataTable绑定GridView,后台代码如何生成带有超链的列。(若是通过前台代码实现 希望能给个详尽的代码)
现阶段代码如下,AutoGenerateSelectButton属性设置成"True"以后就可以在SelectedIndexChanged事件中取到相应键值,但是现在我想以AutoGenerateSelectButton方式去实现,我想以我的“名字”列为超链接,同时点击的时候仍然可以在后台取到键值。但是不知道在后台如何生成带有超链接的列,同时前台代码应该怎么设置也不清楚。
asp.net初学者,还望高手指点。。 若是通过前台代码实现 希望能给个详尽的代码

现阶段代码如下  
C# code

    protected void Page_Load(object sender, EventArgs e)
    {
         if (!IsPostBack)
          {           
            DataTable dt = new DataTable("Table_Order");
            dt.Columns.Add("GUID", System.Type.GetType("System.Guid"));
            dt.Columns.Add("名字", System.Type.GetType("System.String"));
             
             DataRow dr = dt.NewRow();
             dr["GUID"] = guid1;
             dr["名字"] = "小明";

             DataRow dr = dt.NewRow();
             dr["GUID"] = guid2;
             dr["名字"] = "小红";


            DataView dv = new DataView(dt);
            dynamicGenerateColumns(GridView1, dt);//动态生成列
            GridView1.DataSource = dv;
            GridView1.DataKeyNames = new string[] { "GUID"};//设置键
            gv_OrderInfo.DataBind();
            }
     }

        // 动态生成GridView的Columns
        public static GridView dynamicGenerateColumns(GridView gv, DataTable dt)
        {
            // 把GridView的自动产生列设置为false,否则会出现重复列
            gv.AutoGenerateColumns = false;
            // 清空所有的Columns
            gv.Columns.Clear();

            // 遍历DataTable 的每个Columns,然后添加到GridView中去
            foreach (DataColumn item in dt.Columns)
            {
                BoundField col = new BoundField();
                
                col.HeaderText = item.ColumnName;
                col.DataField = item.ColumnName;
                col.Visible = true;
                gv.Columns.Add(col);
            }
            return gv;
        }

        protected void gv_OrderInfo_SelectedIndexChanged(object sender, EventArgs e)//点击界面中的超链接之后,可以取到相应的键值(GUID)
        {
            Label1.Text = GridView1.SelectedDataKey["GUID"].ToString();
        }




前台代码
HTML code

   <asp:GridView ID="GridView1"  runat="server" 
        OnRowDataBound="GridView1_RowDataBound" AutoGenerateSelectButton="True" 
        OnSelectedIndexChanged="GridView1_SelectedIndexChanged">

    </asp:GridView>



------解决方案--------------------
去看看RowDataBound事件吧
------解决方案--------------------
HyperLinkField
------解决方案--------------------
前台代码,绑定字段 name
HTML code
<asp:TemplateField  HeaderText="name" >
                                <ItemTemplate>
                                    <asp:LinkButton ID="nmae" runat="server" Text='<%# Eval("name")%>' CommandName="Edit" ></asp:LinkButton><br />
                                </ItemTemplate>
                            </asp:TemplateField>

------解决方案--------------------
探讨
前台代码,绑定字段 name

HTML code
<asp:TemplateField HeaderText="name" >
<ItemTemplate>
<asp:LinkButton ID="nmae" runat="server" Text=……

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