如何在 Telerik:RadGrid 列中显示原始 XML 字符串而不进行渲染

发布于 2024-11-18 23:40:10 字数 1156 浏览 5 评论 0 原文

我的 telerik:RadGrid 中有一个 telerik:GridBoundColumn 作为带有一些 XML 代码的字符串类型。

如何在 RadGrid 中显示该列(原始 XML)而不进行渲染?

我的问题: 由于某种原因,我的网格方向是从右到左...
所以首先我应该像下面这样更改 xml 方向:

<telerik:GridBoundColumn DataField="Settings" FilterControlAltText="Filter Settings column" DataFormatString="<span style='direction:ltr;'>{0}</span>"
    HeaderText="Settings" SortExpression="Settings" 
    UniqueName="Settings" FilterImageToolTip="Filter" HtmlEncode="false">
    <HeaderStyle HorizontalAlign="Right" VerticalAlign="Middle" />
    <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" />
</telerik:GridBoundColumn>

当前我们在网格中有一个带有 ltr 方向的 XML 字符串。之后,我更改为 HtmlEncode="TRUE",但这样做我失去了 ltr 方向。 所以我将 HtmlEncode 设置回 false

我发现我可以使用

</code> 或 <code><pre></code> 元素。但是使用 <code><xmp></code> 我在网格中替换了 <code><</code> 和 <code>></code> 并且它已被弃用......并且<code><pre></code> 我应该将所有 <code><</code> 更改为 <code>&amp;lt;</code> 并将 <code>></code> 更改为 <code> &amp;gt;</code> 在我的数据库,这是不可行的。

I have a telerik:GridBoundColumn in my telerik:RadGrid as a string type with some XML codes.

How can I show that column (raw XML) in that RadGrid without rendering?

My problems:
my grid direction is right to left for some reason...
so at first I should change the xml direction like below :

<telerik:GridBoundColumn DataField="Settings" FilterControlAltText="Filter Settings column" DataFormatString="<span style='direction:ltr;'>{0}</span>"
    HeaderText="Settings" SortExpression="Settings" 
    UniqueName="Settings" FilterImageToolTip="Filter" HtmlEncode="false">
    <HeaderStyle HorizontalAlign="Right" VerticalAlign="Middle" />
    <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" />
</telerik:GridBoundColumn>

Currently we have an XML string with ltr direction in grid. After that I change to HtmlEncode="TRUE", but by doing so I lose the ltr direction.
so I set HtmlEncode back to false.

I figured out I can use <xmp> or <pre> elements. But with <xmp> I have some replacement of < and > in grid and also it has been deprecated... and with <pre> I should change all < to < and > to > in my database, which is unfeasible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何时共饮酒 2024-11-25 23:40:10

为您的网格添加 onItemDataBound 处理程序

<telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True"
            AllowSorting="True" PageSize="50" ShowFooter="True" AllowPaging="True" 
            AutoGenerateColumns="False" GridLines="None" ShowStatusBar="true" 
                onitemdatabound="RadGrid1_ItemDataBound">

和代码隐藏:

 protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
 {
            if (e.Item is GridDataItem)
            {
                GridDataItem item = e.Item as GridDataItem;
                item["XmlColumn1"].Text = Server.HtmlEncode(item["XmlColumn1"].Text);
                item["XmlColumn2"].Text = Server.HtmlEncode(item["XmlColumn2"].Text);
            }

  }

应该可以解决问题。

Add handler for onItemDataBound for your Grid

<telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True"
            AllowSorting="True" PageSize="50" ShowFooter="True" AllowPaging="True" 
            AutoGenerateColumns="False" GridLines="None" ShowStatusBar="true" 
                onitemdatabound="RadGrid1_ItemDataBound">

And codebehind:

 protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
 {
            if (e.Item is GridDataItem)
            {
                GridDataItem item = e.Item as GridDataItem;
                item["XmlColumn1"].Text = Server.HtmlEncode(item["XmlColumn1"].Text);
                item["XmlColumn2"].Text = Server.HtmlEncode(item["XmlColumn2"].Text);
            }

  }

Should do the trick.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文