2016-06-25 28 views
0

私はsqldatasourceで自動的に設定されているListviewを持っています。ここで私はリンクビューをリストビューの中でクリックして他のページにリダイレクトしています。しかし、リダイレクト中にIDとユーザー名をクエリ文字列として新しいページに渡す必要があります。そして、このIDと私は前のページからこのページにクエスチングを通して受け取っているユーザー名です。だから、私はこのページを読んだり、aspxページでこれを読んでリンクボタンのポストバックURLにバインドする方法を知る必要がありますか?これについて私に示唆してください。ありがとう。ここで クエリ文字列をASPXページに読み込む方法は?

は、私がしようとしているコードです:

<asp:LinkButton ID="LinkButton2" runat="server" PostBackUrl="WebForm4.aspx?id=<%=id %>">here</asp:LinkButton> 

しかし、次のページに、私はこのようになっています:私は設定していますように私はhttp://localhost:38524/WebForm4.aspx?id=1を取得したいかどうか

http://localhost:38524/WebForm4.aspx?id=%3C%=id%20%%3E

querystringを受け取ることによってidの値を1にします。

今、私もこれにしようとしています:

<asp:LinkButton ID="LinkButton2" runat="server" Text="here" PostBackUrl='<%# string.Format 
("WebForm4.aspx?postquestion={0}", Request.QueryString["id"]) %>'></asp:LinkButton> 

しかし、これは動作しません。リンクボタンをクリックすると、WebForm4.aspxにリダイレクトされず、代わりに同じページに更新されます。これで私を助けてください。

+0

いくつかのコードをお願いします! – Aristos

+0

は問題解決になりますか? –

+0

未解決です。 – barsan

答えて

0

クエリーストリングを渡すページで、Public文字列変数を宣言します。PageLoadでクエリーストリングを読み取り、それらの変数に渡します。

public string QueryString1; 
public string QueryString2; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    Page.DataBind();// Imp to add for setting values from front side 
    QueryString1 = Request.QueryString["QueryString1"].ToString(); 
    QueryString2 = Request.QueryString["QueryString2"].ToString(); 
    LinkButton2.PostBackUrl = "WebForm4.aspx?id=" + QueryString1; 
} 

、その後、aspxページにあなたが <%=QueryString1 %>することによりすることにより、これらの値にアクセスすることができ、 <%=QueryString2 %>

<div class="row" runat="server" visible="False" id="mainDiv"> 

    <div class="col-md-12"> 
     <div class="panel panel-default"> 
      <div class="panel-body"> 
       <div id="divMsg" runat="server"> 
         <%=QueryString1 %> 
        <%=QueryString2 %> 
        <asp:Label runat="server" ID="lblMsg"></asp:Label> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

更新

アップデート2が変更分離コードからポストバックを設定するためのPage_Loadを参照してください。ポストバック

PostBackUrl='<%#String.Format("WebForm4.aspx?id={0}",QueryString1) %>' 

私はあなたが、クエリ文字列から次のページにIDとユーザー名の両方を通過するには、以下の例を使用することができ、それは(テスト済み)

+0

お返事ありがとうございます。 div内でうまく動作しています。しかし、これをLinkBut​​tonのPostBackUrlに追加しようとしているときには動作しません。更新された質問を確認してください。そこに何か不足していますか? – barsan

+0

なぜ 'LinkBut​​ton2' PostbackUrlプロパティをコードの背後から設定しようとしないのですか?更新されたansを参照してください。 – KanisXXX

+0

私は知っているが、私の要求はフロントエンドからそれを設定することだ。バックエンドにはできません。 – barsan

0

を助けることを願っています:

<asp:LinkButton ID="LinkButton2" runat="server" PostBackUrl='<%# String.Format("WebForm4.aspx?id={0}&userName={1}", Request.QueryString["id"],Request.QueryString["userName"]) %>'>here</asp:LinkButton> 
0

あなたがほとんどでそれをやりましたあなたの2回目の試み。あなたはクエリ文字列をうまく読んでいます。等号とハッシュ記号を置き換え、また

<asp:LinkButton ID="LinkButton2" runat="server" Text="here" 
    PostBackUrl='<%# string.Format("~/WebForm4.aspx?postquestion={0}", Request.QueryString["id"]) %>'></asp:LinkButton> 

;:欠落しているささいなことは、スラッシュが続くチルダです<%# ... %>Data binding syntaxです。サーバー側のコードから文字列を返すには、this oneが必要です。

関連する問題