0

次のように定義されたグリッドビューがあります。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="columnid" DataSourceID="SqlDataSource1"
           <Columns>
        <asp:TemplateField HeaderText="Title">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1"  ForeColor="red"  runat="server" onclick="LinkButton1_Click" 
                   Text="Click Me!"></asp:LinkButton>                  
            </ItemTemplate>
        </asp:TemplateField>

LinkBut​​ton1_click の分離コードは次のようになります。

protected void LinkButton1_click(object sender, EventArgs e)
{
    string stringQuery = methodToGetQueryString;
    Response.Redirect(queryString, true);
}

リンクを新しいタブまたは新しいウィンドウとして開こうとすると、about:blank ページが表示されます。私はかなり見回しましたが、一般的なコンセンサスは、リンクボタンを使用する代わりに、ハイパーリンクを使用する必要があるようです? ItemTemplate 内のコードを次のように変更しようとしました。

 <ItemTemplate>
        <asp:HyperLink ID = "HyperLink1" runat="server" Text="click me!" NavigateURL = "~/setTheUrlHere.aspx" />

 </ItemTemplate>

これに関する問題は、何らかの奇妙な理由によるものです。実際にクリックできるハイパーリンクはありません。それらの上にカーソルを置き、右クリックしても、新しいタブまたはウィンドウで開くオプションが表示されません。ただのリンク切れのようです。href などを設定する必要がありますか? それが NavigateURL の機能だと思いましたか? または、LinkBut​​ton を使用して必要なことを行う簡単な方法はありますか?

ありがとう!

4

1 に答える 1

0

興味深い場合は、次のようにasp: HyperLinkField 列を使用しました。

<asp:HyperLinkField DataTextField="Nome_Da_Agencia" DataTextFormatString="Detalhe {0}" DataNavigateUrlFields="Nome_Da_Agencia, Codigo_Da_Agencia" HeaderText="Detalhes"
                     DataNavigateUrlFormatString="Agencia.aspx?codigoAgencia={1}" Target="_blank"  />

新しいタブで開くように指示するTarget="_blank"への注意

于 2014-04-15T13:11:19.633 に答える