簡體   English   中英

如何從代碼隱藏中使用“輸入類型=”提交” OnServerClick =”

[英]How do use 'input type=“Submit” OnServerClick=' from codebehind

解決IIS會話狀態問題,我發現有一個簡單的頁面可以用作測試。 此頁面有效。

<body>
<form id="form1" runat="server">
    <div>
        <input type="text"
        id="text1"  
        runat="server"
        />
        <input type="Submit"
        id="Submit1" 
        OnServerClick="Session_Add" 
        value="Add to Session State" 
        runat="server"
            />
        <input type="Submit"
        id="Submit2"  
        OnServerClick="CheckSession" 
        value="View Session State" 
        runat="server" 
        />
        <hr size="1"/>
        <font size="6"/><span id="span1" runat="server"/>
    </div>
</form>
<script language="C#" runat="server">
    void Session_Add(Object sender, EventArgs e)
    {
        Session["MySession"] = text1.Value;
        span1.InnerHtml = "Session data updated! <P> Your session contains: <font color=red>" +
                    Session["MySession"].ToString() + "</font>";
    }

    void CheckSession(Object sender, EventArgs e)
    {
        if (String.IsNullOrEmpty(Session["MySession"].ToString()))
        {
            span1.InnerHtml = "NOTHING, SESSION DATA LOST!";
        }
        else
            span1.InnerHtml = "Your session contains: <font color=red>" +
                     Session["MySession"].ToString() + "</font>";
    }
</script>

除了我不想那樣做之外,沒有其他特殊原因,我嘗試將腳本塊中的部分移動到代碼隱藏文件中。 該代碼如下:

        protected void Page_Load(object sender, EventArgs e)
    {
        Submit1.ServerClick += new System.EventHandler(this.Session_Add);
        Submit2.ServerClick += new System.EventHandler(this.CheckSession);


    }

    void Session_Add(Object sender, EventArgs e)
    {
        Session["MySession"] = text1.Value;
        span1.InnerHtml = "Session data updated! <P> Your session contains: <font color=red>" +
                    Session["MySession"].ToString() + "</font>";
    }

    void CheckSession(Object sender, EventArgs e)
    {
        if ( String.IsNullOrEmpty(Session["MySession"].ToString())) 
        {
            span1.InnerHtml = "NOTHING, SESSION DATA LOST!";
        }
        else
            span1.InnerHtml = "Your session contains: <font color=red>" +             
                     Session["MySession"].ToString() + "</font>";
    }

}

編譯器錯誤消息:CS1061:'ASP.webform1_aspx'不包含'Session_Add'的定義,並且找不到擴展方法'Session_Add'接受類型為'ASP.webform1_aspx'的第一個參數(是否缺少using指令或組裝參考?)

我要做什么才能使這項工作?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="YourPageName.aspx.cs" Inherits="ClassNameOfCodeBehindeWithFullNamespace" %>

以上需要在您的aspx頁面頂部

更新
您需要為方法添加protected修飾符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM