在我的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 "]);
}
答案 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