1

DataTableがあり、値を渡していますDataNavigateUrlField

コードで、その値を取得するために何を入力しますか。例:

MessageNum = DataNavigateUrlField[MessageNumber];

ここDataNavigateUrlFields="MessageNumber"にあります、MessageNumberの値を取得するためにC#コードで何ができますか?助けが必要です。

<asp:HyperLinkField
    HeaderText="Subject"
    DataNavigateUrlFields="MessageNumber" 
    DataNavigateUrlFormatString="~/ViewMailContent.aspx?MessageNumber={0}"
    DataTextField="Subject" />

DataTableはGridView.DataSourceとして設定され、ページに送信されます。ユーザーはハイパーリンクを選択してからページをナビゲートします。メッセージ番号を選択する必要があります。

値がURLの画面上部に表示され、その正しい値になっていることに気付きましたが、値を取得するにはどうすればよいですか。ページが移動する前に値を取得することはできますか?そうでなければ、ページは2回ロードする必要があると思います。

私は約1週間前にウェブを始めたので、極端なウェブ用語を教えてはいけません。

4

1 に答える 1

4

(少なくとも)2つのオプションがあります。

  1. 宛先ページ(グリッドのURLをクリックして移動するページ)の値が必要な場合は、次のように記述します。

    例(コードビハインド):

    Request.QueryString("MessageNumber")
    
  2. グリッドのあるページの値が必要な場合は、JavaScript関数を指すようにURLを書き直します。これにより、宛先ページにリダイレクトされる場合があります。

    <asp:HyperLinkField
        HeaderText="Subject"
        DataNavigateUrlFields="MessageNumber" 
        DataNavigateUrlFormatString="javascript:myFunction({0})"
        DataTextField="Subject" />
    

    関数(ソースページのjavascriptブロックにある必要があります):

    function myFunction(id)
    { 
        alert("Now you are leaving this page");
        document.location = "ViewMailContent.aspx?MessageNumber=" + id;
    }
    
于 2012-05-03T08:01:21.910 に答える