1

グリッドビューの行をハイパーリンクに変換して、たとえばユーザーが新しいタブで開いたときにそのリンクに移動するようにする方法はありますか?現在、私はLinkBut​​tonを使用していますが、ユーザーがLinkBut​​tonを新しいタブで開くと、どこに移動すればよいかわかりません。

.aspxコードは次のようになると思いました。

   <asp:TemplateField>
                <ItemTemplate>              
                    <Hyperlink ID="hyperlink" runat="server" ForeColor="red" HtmlEncode="false" navigationURL="testUrl.aspx"                             
                </ItemTemplate>
  </asp:TemplateField>

唯一のことは、URLがC#コードビハインドでクエリ文字列として設定されているため、それをnavigationURLセクションに渡す方法がわかりません。

必要なページにリダイレクトするためにクエリ文字列を使用してpage_loadで実行できることがあると思いますが、クエリ文字列を操作するのはこれが初めてなので、少し混乱しています。

ありがとう!

4

3 に答える 3

4
<asp:TemplateField>
                <ItemTemplate> 
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#String.Format("~/controller.aspx?routeID1={0}&routeID2={1}", Eval("routeid1"), Eval("routeid2"))%>'></asp:HyperLink>
             </ItemTemplate>
  </asp:TemplateField>

routeid1とrouteid2は、クエリ文字列としてそのページのコントローラーに渡されます。

于 2013-01-28T23:12:21.780 に答える
0

最近行ったことは、Aタグを作成する読み取り専用プロパティを持つようにクラスを変更したことです。このようにして、表示される内容を制御できます。テキストまたはリンクだけです。

<ItemTemplate>
      <asp:Label ID="ColumnItem_Title" runat="server" Text='<%# Bind("DownloadATag") %>'>  </asp:Label>
</ItemTemplate>

背後にあるコードは、クラスのインスタンスをグリッドビューにバインドするだけです。ポストバックイベントのロード時など、いつでもグリッドビューをバインドできます。

 Dim docs As DocViewList = GetViewList()

 GridViewDocuments.DataSource = docs
 GridViewDocuments.DataBind()

上記のコードでは、docsとしてインスタンス化されたDocViewListは、GridViewを埋めるために必要なすべてのプロパティを持つクラスのリストです。ここではGridViewDocumentsという名前です。GridViewのデータソースを設定すると、ソースの任意のプロパティをアイテムにバインドできます。

于 2013-01-28T23:05:50.763 に答える
0

何かのようなもの:

<asp:LinkButton ID="LinkButton_Title" runat="server" target="_blank" PostBackUrl='<%# Eval(Request.QueryString["title"]) %>'

または、RowCreatedイベントからそれらをバインドします。

protected void GridView_OnRowCreated(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      (e.Row.FindControl("LinkButton_Title") as LinkButton).PostBackUrl = Request.QueryString["title"]))
    }
}
于 2013-01-28T23:32:47.850 に答える