我有一个 Telerik 的 RadGrid,它有 2 列,如下所示:
<Columns>
<telerik:GridBoundColumn HeaderText="AirlineCode" UniqueName="AirlineCode" DataField="airlineCode" />
<telerik:GridBoundColumn HeaderText="FlightNumber " EditFormColumnIndex="1" DataField="flightNumber" />
...
...
... more code, but unrelevant to the question here.
</Columns>
我在相关的 NeedDataSource() 函数中为两列提供数据。
所以它正确呈现如下:
| AirlineCode | FlightNumber |
------------------------------------------
| Delta | 2393 |
| Southwest | 345 |
但现在我的要求发生了一些变化。
为了查看,我想将它们合并在一起并显示如下:
| Flight |
--------------------------
| Delta-2393 |
| Southwest-345 |
但是,在编辑行时,用户应该能够分别编辑“AirlineCode”和“Flight Number”。并且这些值仍应在数据源中正确维护。
我知道如果我们希望用户以不同的方式“查看”和“编辑”,我们将不得不使用 .
所以我正在尝试这样的事情:
<Columns>
<telerik:GridTemplateColumn EditFormColumnIndex="0" HeaderText="Flight">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "airlineCode")%>
<asp:Literal runat="server" Text="-"></asp:Literal>
<%#DataBinder.Eval(Container.DataItem, "flightNumber")%>
</ItemTemplate>
<EditItemTemplate>
<telerik:GridBoundColumn HeaderText="AirlineCode" UniqueName="AirlineCode" DataField="airlineCode" />
<telerik:GridBoundColumn HeaderText="FlightNumber " EditFormColumnIndex="1" DataField="flightNumber" />
</EditItemTemplate>
</telerik:GridTemplateColumn> ...
...
... more code, but unrelevant to the question here.
</Columns>
但它不起作用。
里面的那两行给出警告:
元素“GridBoundColumn”不是已知元素。如果网站中存在编译错误,或者缺少 web.config 文件,则可能会发生这种情况。
可能我做错了。需要帮忙。
任何帮助表示赞赏。
最佳答案
drpcken 是正确的。使用 GridTemplateColumn 时,不需要使用 GridBoundColumn。相反,您提供查看和编辑模板 HTML 并使用 Bind
在 Edit 模板中进行双向绑定(bind)的表达式。例如:
<telerik:GridTemplateColumn UniqueName="TemplateColumn">
<ItemTemplate>
<%# Eval("airlinCode") %> - <%# Eval("flightNumber") %>
</ItemTemplate>
<EditItemTemplate>
<table>
<tr>
<td style="width: 50%">
<asp:TextBox runat="server" Text='<%# Bind("airlineCode") %>' />
</td>
<td style="width: 50%">
<asp:TextBox runat="server" Text='<%# Bind("flightNumber") %>' />
</td>
</tr>
</table>
</EditItemTemplate>
</telerik:GridTemplateColumn>
如您所见,您使用
Eval
在 ItemTemplate 和 Bind
中在 EditItemTemplate 中。所有其他代码应继续工作而无需更改。让我也强调一下 Telerik 论坛。对于 Telerik 的特定问题,有一个活跃的社区可以帮助解决问题:www.telerik.com/forums
关于telerik - 在 RadGrid 中,我们如何合并 2 个数据列仅用于查看,但仍然可以单独编辑它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276614/