Wie verwenden Sie " input type="Submit" OnServerClick= " von codebehind

Troubleshooting IIS Session-State-problem habe ich eine einfache Seite zu verwenden, wie ein test. Diese Seite funktioniert.

<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>

Ohne besonderen Grund, außer ich wollte es so zu tun, ich habe versucht, bewegen Sie den Teil in den script-block zu einer codebehind-Datei. Code folgt:

        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>";
    }

}

Compiler-Fehlermeldung: CS1061: 'ASP.webform1_aspx' enthält keine definition für 'Session_Add' und keine Erweiterungsmethode 'Session_Add' die Annahme ein erstes argument vom Typ 'ASP.webform1_aspx' gefunden werden konnte (fehlt eine using-Direktive oder ein Assemblyverweis?)

Was müsste ich tun, um diese Arbeit zu machen?

Glaube nicht, dass Sie das tun können. Versuchen Sie es zu einem asp:button-server-Steuerung (also Drähte die event-Handler richtig).

InformationsquelleAutor Kal | 2010-07-01

Schreibe einen Kommentar