0

私は次のリンクを持っています:

<Columns>
<asp:TemplateField ItemStyle-Width="10px">
<ItemTemplate>
<a id="btnShowPopup5" runat="server" class="thickbox" href='<%#"PopUpPage.aspx?TCode="+Eval("TaskCode")+"&TransSerial="+Eval("TransSerial")+"&TransYear="+Eval("TransYear")+"&mainCode="+Eval("MainCode")+"&year="+Eval("Year")+"&MCode="+Eval("MainCode")+"&DYear="+Eval("Year")+"&PageNew="+Eval("PageNew")+"&ValuesKey="+Eval("ValuesKey")+"&MailNumber="+Eval("MailNumber")+"&candidate_flag="+Eval("candidate_flag")+"&AR=2"+"&TBiframe=true&height=530&width=750"%>'
<asp:Image ID="Image23" runat="server" ToolTip="Back" ImageUrl="Images/cross.png" /></a>

クエリ文字列でそのような変数を渡すのではなく、evalでセッション変数に各値を設定したいと思います。aspx

いくつかの理由で、これらのセッションを.csに設定できないため、aspxにEval値を使用してセッションを設定するhref必要があり、次のようになります。


href='<%#"PopUpPage.aspx?TBiframe=true&height=530&width=750"%>'

これを行う方法 ?

4

4 に答える 4

4

.aspx ページでセッション変数を設定します。何かのようなもの

 <%# Session["Session_TaskCode"] = DataBinder.Eval(Container.DataItem, "TaskCode") %>
于 2012-11-06T13:50:56.447 に答える
1

ItemDataBound イベントでも同じことができます

<ItemTemplate>
<asp:Label id="lblURL" runat="server" Text="Your Query string comes here"></asp:Label>
</ItemTemplate>

ItemDataBound イベントでこの Label コントロールを見つけます

protected void ItemDataBound(object sender, DataListItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    //Set your session here
    Label lblURL = (Label)e.Item.FindControl("lblURL");
    Session["Session_TaskCode"] = lblURL.Text
    }
}
于 2012-11-06T13:56:57.417 に答える
1

この問題はjqueryによって解決されます

リダイレクト コントロール

  <a id="btnShowPopup5" runat="server" class="thickbox" onClientClick="page_gridview(<%#Eval("TaskCode")%>)" href='Your Redirect URL'/>

このスクリプトを aspx ページに配置します

<script type="text/javascript">

        function page_gridview(id) {

            $.ajax({
                type: "POST",
                url: "../test.aspx/assignpage",
                data: "{'id':'" + id + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    alert(data.d);
                    // AjaxSucceeded(msg);
                }

            });

            return false;
        };
  </script>

Put this following method in test.aspx.cs

[WebMethod()]
public static bool assignpage(string id)
{
    HttpContext.Current.Session["id"] = id;

    return true;
}
于 2012-11-06T15:02:21.810 に答える
0

セッション変数の例を示すように編集されました。

コードビハインド

protected void Page_Load(object sender, EventArgs e)
{
    Session["PopUpPage"] = "PopUpPage.aspx?TBiframe=true&height=530&width=750";
}

aspx

<a href='<%= Session["PopUpPage"].ToString() %>'>Testing</a>
于 2012-11-06T12:48:08.560 に答える