telerik - 在 RadGrid 中,我们如何合并 2 个数据列仅用于查看,但仍然可以单独编辑它们?

标签 telerik radgrid telerik-grid

我有一个 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/

相关文章:

c# - Telerik 网格客户端模板

c# - 泛型类型的 Linq 类型转换

telerik - 如何使用 telerik :RadAjaxManager 更新特定事件的控件

c# - 将光标定位在 GridViewComboBoxColumn (Telerik) 中

asp.net - 如何在站点之间共享用户控件/功能?

javascript - Kendo-ui、调度程序、时间线月 View 、workDayStart 和 workDayEnd 错误

wpf - Telerik RadGrid - 隐藏最左边的列

c# - 删除 RadGrid 中的第 11 行使其变为空白

c# - 从服务器端的 GridTemplateColumn 中检索值 (Telerik RadGrid)

javascript - Telerik ASP.Net Radgrid 显示/隐藏过滤器