0

グリッドビュー (テキストボックスを含む) の列のコンテンツをリンクボタンに置​​き換えたいです。実際、このコラムには 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

編集 :

// EvalNavigateURL="javascript:OpenWindow(MY HTML)"を使用して、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

使えます。

リンクボタンでテキストボックスのコードを変更する

<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 に答える