2012-03-06 53 views
0

我从后面的代码向RadGrid添加列。在NeedDataSource事件中,我将一个DataTable(具有10列)绑定到radgrid。
一切都很好,直到这里。但我想在2列(加载本身,而不仅仅是在编辑模式)的文本框。Telerik Radgrid如何从后面的代码添加文本列?

<telerik:RadGrid ID="RadGrid1" runat="server" ShowHeader="true" 
     OnNeedDataSource="RadGrid1_NeedDataSource" OnPreRender="RadGrid1_PreRender" 
     AutoGenerateColumns="true" > 
     <MasterTableView> 
     </MasterTableView> 
</telerik:RadGrid> 

如果完成声明,列定义应该是这样的。但是我希望它能从后面的代码中完成。

<telerik:GridTemplateColumn HeaderText="Qty"> 
       <ItemTemplate> 
        <input id="<%# this.GetUniqueId("Qty", Container.DataItem)%>" name="<%# this.GetUniqueId("Qty", Container.DataItem)%>" type="text" value="<%# Eval("Quantity")%>" size="2" maxlength="3" /> 
       </ItemTemplate> 
</telerik:GridTemplateColumn> 

回答

1

你必须使用一个模板列?如果您可以直接将列绑定到数据源字段,请使用GridNumericColumn。这一点可以从后面的代码中动态添加:

 GridNumericColumn numColumn = new GridNumericColumn(); 
     numColumn.UniqueName = "ColumnId"; 
     numColumn.MaxLength = 20; 
     numColumn.HeaderText = "My Numeric Column"; 
     numColumn.DataField = "Qty"; 
     numColumn.DataFormatString = 

     myGrid.MasterTableView.Columns.Add(numColumn); 
0
Use This. 

    GridTemplateColumn tempCol; 
    for (int i = 0; i < obj.Count; i++) 
    { 
     tempCol = new GridTemplateColumn(); 
     this.gvwRejection.MasterTableView.Columns.Add(tempCol); 
     tempCol.ItemTemplate = new DynamicTemplateCoulmn"txtCategoryQty"+ , "numericTextBox"); 
     tempCol.HeaderText = objRejectionCategoryMasterObject[i].CategoryName.Trim(); 
     tempCol.UniqueName = "CategoryQty" + i; 
     tempCol.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; 
     tempCol.ItemStyle.HorizontalAlign = HorizontalAlign.Right; 
     tempCol.FooterStyle.HorizontalAlign = HorizontalAlign.Right; 
     RejCategoryIDs[i] = objRejectionCategoryMasterObject[i].RejCategoryID; 
    } 

    tempCol = new GridTemplateColumn(); 
    this.gvwRejection.MasterTableView.Columns.Add(tempCol); 
    tempCol.ItemTemplate = new DynamicTemplateCoulmn("txtTotal", "numericTextBoxReadOnly"); 
    tempCol.HeaderText = "Total"; 
    tempCol.UniqueName = "Total"; 
    tempCol.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; 
    tempCol.ItemStyle.HorizontalAlign = HorizontalAlign.Right; 
    tempCol.FooterStyle.HorizontalAlign = HorizontalAlign.Right; 
+0

请添加一些解释。只有代码答案通常不是很有用。 – 2012-12-13 06:44:38

+0

它可能有助于包含一些关于它在做什么的文本 – 2012-12-13 06:44:43

+0

GridTemplateColumn用于创建列。创建该列后,我们设置该列的不同属性。然后将该柱添加到该网格,因为我在上面的代码中输入它 this.gvwRejection.MasterTableView.Columns.Add(tempCol); – Bhupendra 2012-12-13 07:59:51

相关问题