“更新”面板中不会触发按钮事件

时间:2013-09-03 13:35:33

标签: c# asp.net webforms updatepanel

我有一个asp.net网页表单页面也使用母版页。

这是一个显示一些文字并有表格的简单页面,此页面还允许用户上传.doc,.docx&中的简历。 pdf格式。

此代码的问题是我无法触发 出于某种原因<asp:Button ID="btnUploadCV" runat="server" Text="Upload" CssClass="btnUpload" onclick="btnUploadCV_Click"/>

<%@ Page Title="" Language="C#" MasterPageFile="~/en/SiteMasterPage.master" AutoEventWireup="true" CodeFile="career.aspx.cs" Inherits="career" %>
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
        <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"></asp:Content>
        <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
            <!-- Content Page-->
            <!-- page content wrapper -->
            <div id="page-content-area" class="page-content-area">
                <div id="pg-left-bar" class="pg-left-bar">
                    <div class="page-title">
                         <h5><asp:Label ID="lblPageTitle" CssClass="page-title-lbl" runat="server" Text="Introduction"></asp:Label></h5>

                    </div>
                    <div class="page-text">
                        <asp:Label ID="lblPageContents" runat="server" Text=""></asp:Label>
                    </div>
                    <div class="career-form-wrapper">
                        <!-- UpdatePanel -->
                        <asp:UpdatePanel ID="updPnlArticles" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                                <asp:Panel ID="pnlCareerForm" runat="server">
                                    <div class="row-form">
                                        <div class="row-lbl-wrapper"> <span class="row-req">*</span>

                                            <asp:Label ID="lblFirstName" runat="server" CssClass="row-label" Text="First Name:"></asp:Label>
                                        </div>
                                        <asp:TextBox ID="txtFirstName" runat="server" CssClass="row-input"></asp:TextBox>
                                        <asp:RequiredFieldValidator ID="rfFN" runat="server" ValidationGroup="Careers" ErrorMessage="*" CssClass="row-validate" ControlToValidate="txtFirstName"></asp:RequiredFieldValidator>
                                    </div>
                                    <div class="row-form">
                                        <div class="row-lbl-wrapper"> <span class="row-req">*</span>

                                            <asp:Label ID="lblFamilyName" runat="server" CssClass="row-label" Text="Family Name:"></asp:Label>
                                        </div>
                                        <asp:TextBox ID="txtFamilyName" runat="server" CssClass="row-input"></asp:TextBox>
                                        <asp:RequiredFieldValidator ID="rfLN" runat="server" ValidationGroup="Careers" ErrorMessage="*" CssClass="row-validate" ControlToValidate="txtFamilyName"></asp:RequiredFieldValidator>
                                    </div>
                                    <div class="row-form">
                                        <div class="row-lbl-wrapper"> <span class="row-req">*</span>

                                            <asp:Label ID="lblEmail" runat="server" CssClass="row-label" Text="Email:"></asp:Label>
                                        </div>
                                        <asp:TextBox ID="txtEmail" runat="server" CssClass="row-input"></asp:TextBox>
                                        <asp:RequiredFieldValidator ID="rfvEmail" runat="server" ValidationGroup="Careers" ErrorMessage="*" CssClass="row-validate" ControlToValidate="txtEmail"></asp:RequiredFieldValidator>
                                        <asp:RegularExpressionValidator ID="revEmail" runat="server" ErrorMessage="*" CssClass="row-validate" ControlToValidate="txtEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ValidationGroup="Careers"></asp:RegularExpressionValidator>
                                    </div>
                                    <div class="row-form">
                                        <div class="row-lbl-wrapper">
                                            <asp:Label ID="lblPhone" runat="server" CssClass="row-label" Text="Phone Number:"></asp:Label>
                                        </div>
                                        <asp:TextBox ID="txtPhone" runat="server" CssClass="row-phone" Text=""></asp:TextBox>
                                        <asp:RegularExpressionValidator ID="revPhone" runat="server" ErrorMessage="*" ValidationGroup="Careers" ControlToValidate="txtPhone" ValidationExpression="^([\+]?[0-9]{1,3}[\s.-][0-9]{1,12})([\s.-]?[0-9]{1,4}?)$"></asp:RegularExpressionValidator>
                                        <div class="tooltip tooltip-override" title="Accepts local format (eg. 04 1234567, 050 1234567 or 04-1234567, 050-1234657)<br />and international format (eg. +971 41234567, +971-41234567 ).<br />Also accepts an optional extention of up to four digits (eg. 04 1234567 289 or +974 41234567 289)">
                                            <asp:Image ID="imgtooltip" CssClass="tooltip-img" runat="server" ImageUrl="~/images/tooltipgreen.png" />
                                        </div>
                                    </div>
                                    <div class="row-form">
                                        <div class="row-lbl-wrapper">
                                            <asp:Label ID="lblFax" runat="server" CssClass="row-label" Text="Fax Number:"></asp:Label>
                                        </div>
                                        <asp:TextBox ID="txtFax" runat="server" CssClass="row-input"></asp:TextBox>
                                        <asp:RegularExpressionValidator ID="revFax" runat="server" ErrorMessage="*" ValidationGroup="Careers" ControlToValidate="txtFax" ValidationExpression="^([\+]?[0-9]{1,3}[\s.-][0-9]{1,12})$"></asp:RegularExpressionValidator>
                                        <div class="tooltip tooltip-override" title="Accepts local format (eg. 04 1234567 or 040-1234567)<br />and international format (eg. +974 41234567 or +974-41234567)">
                                            <asp:Image ID="Image1" CssClass="tooltip-img" runat="server" ImageUrl="~/images/tooltipgreen.png" />
                                        </div>
                                    </div>
                                    <div class="row-form">
                                        <div class="row-lbl-wrapper">
                                            <asp:Label ID="lblAddress" runat="server" CssClass="row-label" Text="Address:"></asp:Label>
                                        </div>
                                        <asp:TextBox ID="txtAddress" runat="server" CssClass="row-input-multiline" TextMode="MultiLine"></asp:TextBox>
                                    </div>
                                    <div class="row-form">
                                        <div class="row-lbl-wrapper"> <span class="row-req">*</span>

                                            <asp:Label ID="lblCountry" runat="server" CssClass="row-label" Text="Country:"></asp:Label>
                                        </div>
                                        <asp:DropDownList ID="ddCountry" runat="server" CssClass="row-dd"></asp:DropDownList>
                                        <asp:CascadingDropDown ID="csdCountry" runat="server" Category="Country" TargetControlID="ddCountry" PromptText="-- Select --" LoadingText="[Loading Countries...]" ServiceMethod="FetchCountries" ServicePath="~/wsCountryCity.asmx" PromptValue="0"></asp:CascadingDropDown>
                                        <asp:RequiredFieldValidator ID="rfCountry" ValidationGroup="Careers" ControlToValidate="ddCountry" CssClass="row-validate" InitialValue="0" runat="server" ErrorMessage="*"></asp:RequiredFieldValidator>
                                    </div>
                                    <div class="row-form">
                                        <div class="row-lbl-wrapper">
                                            <asp:Label ID="lblCity" runat="server" CssClass="row-label" Text="City:"></asp:Label>
                                        </div>
                                        <asp:DropDownList ID="ddCity" runat="server" CssClass="row-dd"></asp:DropDownList>
                                        <asp:CascadingDropDown ID="csdCity" runat="server" Category="City" TargetControlID="ddCity" ParentControlID="ddCountry" PromptText="-- Select --" LoadingText="[Loading Cities...]" ServiceMethod="FetchCities" ServicePath="~/wsCountryCity.asmx" PromptValue="0"></asp:CascadingDropDown>
                                    </div>
                                    <div class="row-form">
                                        <div class="row-lbl-wrapper"> <span class="row-req">*</span>

                                            <asp:Label ID="Label1" runat="server" CssClass="row-label" Text="CV:"></asp:Label>
                                        </div>
                                        <asp:FileUpload ID="FileUpload1" runat="server" CssClass="fileUpload" />
                                        <div id="dFileUpload1" class="btnUploadHack">Browse</div>
                                        <asp:Button ID="btnUploadCV" runat="server" Text="Upload" CssClass="btnUpload" onclick="btnUploadCV_Click" />
                                        <asp:RequiredFieldValidator ID="rfvF1" runat="server" ValidationGroup="Careers" ErrorMessage="*" CssClass="row-validate" ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
                                        <asp:Label ID="lblImageMSG" runat="server" Text=""></asp:Label>
                                    </div>
                                    <div class="contactus-row">
                                        <asp:Button ID="btnSave" runat="server" CssClass="btnContactUsSave" Text="Send Message" onclick="btnSave_Click" ValidationGroup="Careers" />
                                    </div>
                                </asp:Panel>
                                <asp:Panel ID="pnlCareerMSG" runat="server"></asp:Panel>
                            </ContentTemplate>
                        </asp:UpdatePanel>
                        <!-- UpdatePanel -->
                    </div>
                </div>
                <div class="pg-right-bar">
                    <asp:Image ID="imgSideBanner" runat="server" />
                </div>
            </div>
            <!-- page content wrapper -->
            <!-- Content Page-->
        </asp:Content>

背后的代码

    protected void btnUploadCV_Click(object sender, EventArgs e)
    {

// code is here
    }

到目前为止,我无法弄清楚是什么阻挡了射击内部的任何按钮。是的我甚至做了一个简单的按钮测试,即使没有开火。

enter image description here

我不确定是否是创建问题的验证或更新面板。

2 个答案:

答案 0 :(得分:0)

您需要在“更新”面板中的Triggers之后添加ContentTemplate

<Triggers>
   <asp:PostBackTrigger ControlID="btnexport" />
</Triggers>

答案 1 :(得分:0)

必填字段验证器可能正在咬你。只需将属性'导致验证=“false”'添加到您的按钮,它就会触发。您可以使用if Page处理验证服务器端。的IsValid

<asp:Button ID="btnUploadCV" runat="server" Text="Upload" CssClass="btnUpload" onclick="btnUploadCV_Click" CausesValidation="false" />

服务器端

protected void btnUploadCV_Click(object sender, EventArgs e)
{
  Page.Validate();
if (Page.IsValid == true)
 {

 //  your code  here

   }
}

<强>更新

我不确定你的按钮发生了什么。然后如果所有失败都会进行蛮力攻击以使帖子像这样回来。

<asp:Button ID="btnUploadCV" runat="server" Text="Upload" CssClass="btnUpload" onclick="btnUploadCV_Click" CausesValidation="false" onClientClick='forcePostBack()" />

**Javascript**
function forcePostback(){
 __doPostBack('<%#btnUploadCv.UniqueID %>','');

 }