当前位置:编程学习 > C#/ASP.NET >>

为什么弹出窗口的代码在单一页面正常,放到母版页就不运行了!?

最近得到一段代码,可以弹出窗口并通过comfirm看是否执行!

    --

    我把它放在单一的网页中,调试成功了;但我把它放到含母版页的界面中,Button2就没反应了!代码1虚线以上是在单一网页上调试成功的例子,虚线以下是在母版页失败的例子!    代码2是后台。

    --

    我把可能出错的那一段代码标记了下划线,请各位帮忙看看,3Q!

--

-------------------------------代码1-------------------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title><%--PerformValidation and ValidationGroup Example--%></title>
  </head>
  <body> 
    <form id="form1" runat="server"> 
    <div> 
        <%--JavaScript 的 Confirm 選擇完後,再自動呼叫 C# 函數 - 沒 Ajax / UpdatePanel 的版本--%><p></p> 
         
        <asp:Button ID="Button1" runat="server" Text="Button1 (按下後會彈出 Confirm 再供選擇)" onclick="Button1_Click"  Font-Size="13px"/> 
         
        <p></p> 
        <%--畫面下方的 Button2 被故意隱藏起來,因我們只是要它的 Button2_Click 事件處理函數,作為傳遞流程的中介。--%><br /> 
        <asp:Button ID="Button2" runat="server" Text="" onclick="Button2_Click" ForeColor="White" Width="0px" Height="0px"  
            BorderColor="White" BorderWidth="0px" />         
    </div> 
    </form> 
</body> 
</html>
-----------------------------------------------------------------------
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default12.aspx.cs" Inherits="Default12" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
 
        <%--JavaScript 的 Confirm 選擇完後,再自動呼叫 C# 函數 - 沒 Ajax / UpdatePanel 的版本--%><p></p> 
         
        <asp:Button ID="Button1" runat="server" Text="Button1 (按下後會彈出 Confirm 再供選擇)" onclick="Button1_Click"  Font-Size="13px"/> 
         
        <p></p> 
        <%--畫面下方的 Button2 被故意隱藏起來,因我們只是要它的 Button2_Click 事件處理函數,作為傳遞流程的中介。--%><br /> 
        <asp:Button ID="Button2" runat="server" Text="" onclick="Button2_Click" ForeColor="White" Width="0px" Height="0px"  
            BorderColor="White" BorderWidth="0px" />         
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">



---------------------------------代码2-----------------------------------

protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("<font color='red'>Button1_Click 執行完成 </font><p>");
        //二段式的 Client-Server 來回 :
        //Server-side 的 Button1_Click 執行完、回到 Client-side 後,會彈出 JavaScript 的 Confirm 對話框,若
        //使用者選擇了「確定」,則會「自動」執行 Button2 的 Click 事件處理常式,亦即二度前往 Server-side
        Page.ClientScript.RegisterStartupScript(typeof(string), "Button1_Click", "var retValue=confirm('Submit form?');" +
            "if (retValue) {document.getElementById('Button2').click();}; else { }", true);
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write("<font color='red'>Button2_Click 執行完成 </font><p>");
        this.func3();
    }
    //這個為我們在後端,真正想被執行的 c# 自訂函數 (可放在 App_Code 資料夾裡的自訂類別)
    private void func3()
    {
        Response.Write("<font color='red'>func3 執行完成 </font><p>");
    }
调试
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,