2012-01-17 101 views
1

在这里,我做了Codebehind.I的每一件事情,我动态地创建了一个GridView。如何添加链接按钮使用datatable作为数据源动态GridView的?

DataTable dt = null;
dt = loadDynamicGrid(columnname,ds);

GridView grdnew = new GridView();

grdnew.DataSource = dt;

grdnew.DataBind();

private DataTable loadDynamicGrid(string [] column,DataSet ds) 
{  
    #region Code for preparing the DataTable 

    DataTable dt = new DataTable(); 

    //Create an ID column for adding to the Datatable 
    DataColumn dcol ;//= new DataColumn(ID1, typeof(System.Int32)); 
    ButtonColumn btncolm; 
    HyperLinkColumn hplink; 

    for (int i = 0; i < column.Count(); i++) 
    { 
     if (column[i] != "" & column[i]!=null) 
     { 
      if (column[i] == "BUY" || column[i] == "Buy" || column[i] == "BuyNow" || column[i] == "Details" || column[i] == "ViewDetails" || column[i] == "BuyQty" || column[i] == "Purchase") 
      { 
       //btncolm = new ButtonColumn(); 
       //btncolm.HeaderText = column[i]; 
       //btncolm.Text = column[i]; 

       //dt.Columns.Add(btncolm.Text); 
       hplink = new HyperLinkColumn(); 

       hplink.HeaderImageUrl = "http://www.google.com"; 
       hplink.HeaderText = column[i]; 
       hplink.Text = column[i]; 
       dt.Columns.Add(hplink.Text); 

      } 
      else 
      { 
       dcol = new DataColumn(column[i], typeof(System.String)); 
       dt.Columns.Add(dcol); 
      } 
     } 
    } 

    int k=0; 

    foreach (DataRow dr in ds.Tables[0].Rows) 
    { 
     DataRow myrow = dt.NewRow(); 
     for (int j = 0; j < column.Count(); j++) 
     { 
      if (column[j] != "" & column[j] != null) 
      { 

       string sdfsd = Convert.ToString(dr[column[j]]); 
       if (column[j] == "BUY" || column[j] == "Buy" || column[j] == "BuyNow" || column[j] == "Details" || column[j] == "ViewDetails" || column[j] == "BuyQty" || column[j] == "Purchase") 
       { 
        //myrow[column[j]] = "http://www.google.com1/"; 
        myrow[column[j]] = dr[column[j]]; 
       }      
       else 
       { 
        if (Convert.ToString(dr[column[j]]).TrimEnd() == "&nbsp;") 
        { 
         myrow[column[j]] = ""; 
        } 
        else 
        { 
         myrow[column[j]] = dr[column[j]]; 
        } 
       } 
       if (column[j] == "Stock" || column[j] == "QtyInStock" || column[j] == "Qty" || column[j] == "Available" || column[j].ToLower() == "onhand" || column[j] == "QuantityOnHand" || column[j] == "QtyAvailable" || column[j] == "InStock" || column[j] == "Avail" || column[j] == "Inventory" || column[j] == "Quantity" || column[j] == "Availability") 
       { 
        if (Convert.ToString(dr[column[j]]) != "0" && Convert.ToString(dr[column[j]]) != "" && dr[column[j]] != null && Convert.ToString(dr[column[j]]).TrimEnd()!="&nbsp;") 
        { 
         stock = dr[column[j]].ToString(); 
        } 
       } 

      } 
     } 
     k++; 
     dt.Rows.Add(myrow);   

    }  

    #endregion 

    column = null; 

    return dt;  
} 

然后我加入一个div每次像:

mydiv.Controls.Add(grdnew);

与上述我重复循环为不同的数据表绑定到gridview.Here我需要一个链接按钮gridview.so我添加了一个超链接列datatable,但我没有得到任何linkbutton在grid.I有超过20个数据表绑定到grid.so我首选动态创建网格。

回答

3

只是数据网格替换电网并添加hyperlinkcolumn到数据表,并给数据添加到列单击我

DataTable dt=new DataTable(); 

HyperLinkColumn hplink = new HyperLinkColumn(); 
hplink.Text = column1[i]; 
dt.Columns.Add(hplink.Text); 

DataRow myrow = dt.NewRow(); 
myrow[column1[l]] = String.Format("<a href='" + imageUrl(gettablename(tablename)) + "' target='_blank'>" + dr[column[j]] + "</a>"); 

dt.Rows.Add(myrow); 
DataGrid1.DataSource=dt; 
DataGrid1.DataBind(); 

完蛋了问题就迎刃而解了。

1
TableCell tc1 = new TableCell(); 
tc1.Wrap=true; 
this.lnkRecvGpNo=new LinkButton(); 
lnkRecvGpNo.Text="RecvGp No"; 
this.lnkRecvGpNo.Click+=new EventHandler(lnkRecvGpNo_Click); 
tc1.Controls.Add(lnkRecvGpNo); 
+0

,我需要从网格切换到表格吗? – tiru 2012-01-17 10:39:56

+0

为什么?如果你想在表格中生成linkbutton,并且你希望在网格视图中动态添加链接,那么在你的表格中创建一个templatefield&generate linkbutton。 – Neha 2012-01-17 10:45:23

+0

你能告诉我,在哪里写这段代码。 – tiru 2012-01-17 11:06:05