2012-01-17 3 views
1

Здесь я сделал все, что угодно от codebehind.I создал gridview динамически.Как добавить ссылку с помощью динамического динамического источника данных в виде данных?

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

GridView grdnew = новый 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;  
} 

Тогда я добавление к сНу каждый раз, как:

mydiv.Controls.Add (grdnew);

как выше, я повторяю цикл для разных таблиц данных для привязки к gridview.Here мне нужна кнопка ссылки для gridview.so я добавил столбец гиперссылки в datatable, но я не получаю ссылку в grid.I имеют более 20 таблиц данных для привязки к grid.so я предпочитаю динамически создавать сетку.

ответ

3

Просто замените сетку с DataGrid и добавить hyperlinkcolumn в DataTable и дать данные в этой колонке, как жми меня

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

Thats это проблема решена.

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

почему ?? это для вашей таблицы, если вы хотите сгенерировать ссылку в таблице, и если вы хотите динамически добавлять ссылку в виде сетки, создайте шаблонное поле и создайте ссылку. – Neha

+0

Можете ли вы сказать мне, где написать этот код. – tiru

 Смежные вопросы

  • Нет связанных вопросов^_^