0

サイトマスターページとコンテンツページが1つずつあります。コンテンツページのボタンをクリックしても、クリックイベントメソッドが実行されません。

SiteMasterコード:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
</head>

<body background="../../Content/city-balcony@2x.jpg">
    <form id="form1" runat="server">
    <div class="page">

        <div id="header">
            <div id="title">
                <h1>Welcome to E-Meeting</h1>
            </div>

            <div id="logindisplay">
                <% Html.RenderPartial("LogOnUserControl"); %>
            </div> 

            <div id="menucontainer">

                <ul id="menu">              
                    <li><%: Html.ActionLink("Home", "Index", "Home")%></li>
                                <%
                                    if (Request.IsAuthenticated)
                                    {
                                %>
                    <li><%: Html.ActionLink("Chat", "ViewPage1")%></li>
                                <% }
                                %>
                    <li><%: Html.ActionLink("About", "About", "Home")%></li>
                </ul>

            </div>
        </div>

        <div id="main">
            <%="Last communicated at : " + DateTime.Now.ToLongTimeString()%>
        <asp:ContentPlaceHolder ID="MainContent" runat="server" />

            <div id="footer">
            </div>
        </div>
        <br />
        <br />
    </div>
    </form>
</body>
</html>

コンテンツページ:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<script runat="server">

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "Modified by click event";
    }
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    ChT
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <h2>ChT</h2>
       <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />        
            <asp:Label ID="Label1" runat="server" Text="On Load"></asp:Label>
        </ContentTemplate>


    </asp:UpdatePanel>

</asp:Content>

ボタンをクリックするたびに、ラベルテキストを「クリックイベントによって変更」にしたいのですが、「ロード時」のままです。誰か助けてもらえますか

4

3 に答える 3

0

次のように、更新パネルにトリガーを追加してみてください。

</ContentTemplate> 
<Triggers>
    <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />        
</Triggers>

ScriptManagerEnablePartialRenderingを確認し、表示された場合は削除するか、に設定しますtrue

于 2013-02-17T07:24:48.577 に答える
0

C# を使用してイベントをトリガーするメソッドを追加できます。

  1. ボタンをダブルクリックして、ボタン クリック イベントを作成します。
  2. ラベル テキストを「クリック イベントによって変更」に変更するコードを追加します。

例えば、

protected void Button1_Click(object sender, EventArgs e){

Label1.text = "Modified by click event";

}

ちなみに、aspx コードで Text="On Load" を取り除くことができます。(コードは次のようになります: <asp:Label ID="Label1" runat="server"></asp:Label>、次に .cs ファイルに page_load メソッドを追加します。

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
      Label1.text = "On load";

    }

この場合、Web ページを開くと「ロード中」と表示され、ボタンをクリックすると「クリック イベントによって変更されました」と表示されます。

それを願っています

于 2013-02-17T18:18:46.273 に答える
0

EnableEventValidation="false" コンテンツページ
に 追加

<%@ Page Title="" EnableEventValidation="false" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>    

それは動作します

于 2016-12-24T08:37:02.770 に答える