如何在RadGrid批量编辑中用数据填充模板列

时间:2015-03-01 16:04:21

标签: javascript jquery .net telerik-grid

在我的telerik:RadGrid批量编辑中,GridTemplateColumn ItemTemplate无法与data绑定。要调用网格填充方法,我使用了下面的语法。

function GridBind(GridID, GridData) {
    var TableView = GridID.get_masterTableView();
    TableView.set_dataSource(GridData); TableView.dataBind();
}

我的网格TemplateColumn语法如下:

                 <telerik:GridTemplateColumn HeaderText="Category" DefaultInsertValue="Beverages" HeaderStyle-Width="150px" UniqueName="CategoryID" DataField="CategoryID">
                        <ItemTemplate>
<telerik:RadTextBox ID=" txtCategoryName " runat="server" Width="80px" Text=<%# Eval("CategoryName ") %>  >
                            </telerik:RadTextBox>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <telerik:RadDropDownList runat="server" ID="CategoryIDDropDown" DataValueField="CategoryID"
                                DataTextField="CategoryName"                            </telerik:RadDropDownList>
                        </EditItemTemplate>
                    </telerik:GridTemplateColumn>

在上面的列中,ItemTemplate &lt;%#Eval(&#34; CategoryName&#34;)%&gt; 不与data.i绑定。不喜欢使用方法 RadGrid1_RowDataBound 来自ClientEvents,是否可以从我的自定义函数 GridBind()调用此方法来绑定此项目列数据,或者可以使用模板列填充数据的任何进程。

<ClientSettings>
                <ClientEvents  OnRowDataBound="RadGrid1_RowDataBound"></ClientEvents>
            </ClientSettings>

function RadGrid1_RowDataBound(sender, args) {
                var radTextBox1 = args.get_item().findControl("LastName"); // find control
                radTextBox1.set_value(args.get_dataItem()["txtCategoryName "]);
            }

1 个答案:

答案 0 :(得分:0)

您正在使用客户端绑定,因此您必须使用RowDataBound事件。服务器控件和客户端绑定是一种相反的概念。因此,服务器绑定表达式不能像这样使用。

选项2是在ClientItemTemplate中使用纯HTML与Telerik Kendo绑定模板:http://demos.telerik.com/aspnet-ajax/grid/examples/data-binding/client-side/client-item-template/defaultcs.aspx