2012-01-17 47 views
1

ここで私はコードビハインドからすべてのことをしました。私は動的にグリッドビューを作成しました。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に私はハイパーリンクの列を追加しましたが、私はgrid.Iのリンクボタンを取得していないgrid.soにバインドするデータのテーブルが20以上あるので、グリッドを動的に作成することをお勧めします。

答えて

3

私にこれだけ

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(); 

をクリックするだけで、問題解決のデータグリッドとグリッドを交換し、データテーブルにhyperlinkcolumnを追加し、その列にデータを与えます。

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

+0

なぜですか?これはテーブルにlinkbuttonを生成したい場合にグリッドビューでリンクを動的に追加したい場合はテンプレートフィールドを作成し、そこにlinkbuttonを生成します。 – Neha

+0

このコードを書く場所を教えてください。 – tiru

関連する問題