0

私は次の問題に直面しています:

次のような要件に従って、aspxにセッションを設定した場合:

<Columns>
<asp:TemplateField ItemStyle-Width="10px">
<ItemTemplate>
<a id="btnShowPopup5" runat="server" class="thickbox" href='<%#"PopUp.aspx?AR=2"+"&TBiframe=true&height=530&width=750"%>'
<asp:Image ID="Image23" runat="server" ToolTip="Back" ImageUrl="Images/cross.png" /></a>
<asp:HiddenField ID="HDN_TaskCode" Value='<%# Session["s_TaskCode"] = DataBinder.Eval(Container.DataItem, "TaskCode") %>'
runat="server" />

Session["s_TaskCode"]:は常にグリッドビューの最初の行のタスクコード値で設定されていることに注意してください!!

そして、これは私が望むものではありません。

行に従ってセッションを設定したい。

私のグリッドビューには2つの行があると言います:

  • 最初のtask_code値は7です
  • 2番目のtask_code値は10です

クリックしたハイパーリンクに応じて、正しい値でセッションを設定したい。

データキーのように。

:セッションを.csではなく.aspxに設定したい。

4

1 に答える 1

2

コードで使用しているセッション変数(Session["s_TaskCode"])は1つだけです。では、どのようにして複数の値を保持できるのでしょうか。最後に書き込まれた値が常に含まれます。

セッションに行ごとの値を格納するには、次のようなことを行う必要があります。

Session["s_TaskCode" + rowIndex]

ここで、rowIndexは<%#Container.DataItemIndex%>です。

したがって、次のように使用できます。<%# Session["s_TaskCode" + Container.DataItemIndex] %>

編集:

セッションの代わりに、'btnShowPopup5' hrefurlQueryStringパラメーターでTaskCodeの値を渡してみませんか。

href='<%#"PopUp.aspx?AR=2"+"&TBiframe=true&height=530&width=750&" + DataBinder.Eval(Container.DataItem, "TaskCode") %>'
于 2012-11-11T08:28:10.317 に答える