0

我想用链接按钮替换我的gridview(包含文本框)列中的内容。实际上,此列包含 HTML 页面。当我点击链接按钮时,我想打开这些页面 HTML 解释的新窗口。

目前我只有这个:

<asp: TemplateField HeaderText="Data">
  <ItemTemplate>
    <asp:Label runat="server" ID="Data" Text='<%#Server.HtmlEncode(Convert.ToString(DataBinder.Eval(Container.DataItem,"Data"))) %>' />
  </ItemTemplate>
  <EditTemplate>
    <asp:TextBox runat="server" ID="txtData" Text='<%#Server.HtmlEncode(Convert.ToString(DataBinder.Eval(Container.DataItem,"Data"))) %>' />
  </EditTemplate>
</asp:TemplateField>

有人可以向我解释我该如何进行吗?

4

3 回答 3

1

利用

<asp:LinkButton runat="server" NavigateUrl='<%#Eval("DATA") %>' />

在你的ItemTemplate而不是TextBox

编辑 :

使您的NavigateURL="javascript:OpenWindow(MY HTML)"// 您可以使用 Eval 将您的 HTML 作为数据绑定的字符串内容。

Javascript:

OpenWindow(myHTML)
{
    newwindow=window.open();
    newdocument=newwindow.document;
    newdocument.write(myHTML);
}

有关更多信息,请查看此参考:在新 Windows 中创建 JavaScript 动态文档

编辑 :

我的错误:),将其替换为NavigateUrl这样OnClientClick

<asp:LinkButton ID="LinkButton1" runat="server" Text="Click" OnClientClick="javascript:OpenWindow('<%#Eval("MyFieldName") %>');return false;" /> 

或者不使用 LinkBut​​ton 使用锚标签:

<a href="javascript:OpenWindow('<%#Eval("MyFieldName") %>');" runat="server" id="myLink" />
于 2013-07-18T12:38:09.247 回答
0

我有类似的问题,我将 html 存储在我的数据库中,并希望在 div 中显示它。这对我有用。

<itemTemplate>
 <div>
   <%# Server.HtmlDecode( (string)DataBinder.Eval(Container.DataItem, "notes") ) %>
 </div>
</itemTemplate>

希望这能回答你的问题;)

于 2015-02-16T07:50:18.453 回答
0

您可以使用。

使用链接按钮更改文本框代码

<asp: TemplateField HeaderText="Data">
  <ItemTemplate>
    <asp:Label runat="server" ID="Data" Text='<%#Server.HtmlEncode(Convert.ToString(DataBinder.Eval(Container.DataItem,"Data"))) %>' />
  </ItemTemplate>
  <EditTemplate>
   <asp:LinkButton runat="server" NavigateUrl='YouFolder/<%#Eval("DATA") %>' />/>
  </EditTemplate>
</asp:TemplateField>

谢谢

于 2013-07-18T12:42:44.183 回答