Telerik Radgrid如何从代码后面添加文本框列?

时间:2012-03-06 00:35:37

标签: asp.net telerik radgrid

我正在从代码后面向RadGrid添加列。在NeedDataSource事件中,我将一个DataTable(有10列)绑定到radgrid 一切都运作良好,直到这里。但是我想在2列中设置文本框(在加载时本身,而不仅仅是在编辑模式下)。

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

3 个答案:

答案 0 :(得分:2)

像任何其他列类型一样创建TemplateColumn并将模板对象设置为ItemTemplate(您可以对HeaderTemplate和FooterTemplate执行相同操作)。但是你必须定义自定义模板类,它将实现ITemplate

你可以在这里找到一个例子:

http://www.telerik.com/help/aspnet-ajax/grid-programmatic-creation.html#Section4

答案 1 :(得分: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);

答案 2 :(得分: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;