读书人

dataTable绑定GridView后台代码怎么

发布时间: 2012-04-16 16:20:04 作者: rapoo

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=……

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


GridView1_RowEditing 中

C# code
int id=Convert.ToInt32(GridView1.DataKeys[e.NewEditIndex].Value);
[解决办法]
int id=Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0].ToString());

读书人网 >asp.net

热点推荐