Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET:用户控件中的按钮未发回_C#_.net_Asp.net_Javascript_Postback - Fatal编程技术网

C# ASP.NET:用户控件中的按钮未发回

C# ASP.NET:用户控件中的按钮未发回,c#,.net,asp.net,javascript,postback,C#,.net,Asp.net,Javascript,Postback,我有一个简单的用户控件,代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Pager.ascx.cs" Inherits="Pager" %> <table style="width: 100%;"> <tr> <td runat="serve

我有一个简单的用户控件,代码如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Pager.ascx.cs" Inherits="Pager" %>
<table style="width: 100%;">
    <tr>
        <td runat="server" id="PageControls">
            <!-- This button has the problem: -->
            <asp:Button ID="btnPrevPage" runat="server" Text="&larr;" OnClick="btnPrevPage_Click" />
            Page
            <asp:DropDownList runat="server" ID="ddlPage" AutoPostBack="true" OnSelectedIndexChanged="ddlPage_SelectedIndexChanged" />
            of
            <asp:Label ID="lblTotalPages" runat="server" />
            <!-- This button has the problem: -->
            <asp:Button ID="btnNextPage" runat="server" Text="&rarr;" OnClick="btnNextPage_Click" />
        </td>
        <td align="right" runat="server" id="itemsPerPageControls">
            <asp:Literal ID="perPageText1" runat="server" />
            <asp:DropDownList ID="ddlItemsPerPage" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlItemsPerPage_SelectedIndexChanged" />
            <asp:Literal ID="perPageText2" runat="server" />
        </td>
    </tr>
</table>

页
属于
如您所见,这两个按钮连接到click events(单击事件),这些事件在代码隐藏中定义正确

现在,我将如何在页面上包含控件的实例:

 <uc:Pager ID="Pager1" runat="server" TotalRecords="100" DisplayItemsPerPage="true"
        ItemsPerPageChoices="10,25,50,100" ItemsPerPageFormatString="Sessions/Page: {0}"
        PageSize="25" OnPageChanged="PageChanged" OnPageSizeChanged="PageChanged" />

但我注意到,我的用户控件中的2个按钮在单击时并没有引起回发。不过,下拉列表确实会导致回发。以下是呈现的HTML:

<table style="width: 100%;">
    <tr>
        <td id="ctl00_MainContent_Pager1_PageControls" align="left">
            <!-- No onclick event! Why? -->
            <input type="submit" name="ctl00$MainContent$Pager1$btnPrevPage" value="←" id="ctl00_MainContent_Pager1_btnPrevPage" />
            Page
            <select name="ctl00$MainContent$Pager1$ddlPage" onchange="javascript:setTimeout('__doPostBack(\'ctl00$MainContent$Pager1$ddlPage\',\'\')', 0)"
                id="ctl00_MainContent_Pager1_ddlPage">
                <option value="1">1</option>
                <option selected="selected" value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
            </select>
            of <span id="ctl00_MainContent_Pager1_lblTotalPages">6</span>
            <!-- No onclick event! Why? -->
            <input type="submit" name="ctl00$MainContent$Pager1$btnNextPage" value="→" id="ctl00_MainContent_Pager1_btnNextPage" />
        </td>
        <td id="ctl00_MainContent_Pager1_itemsPerPageControls" align="right">
            Sessions/Page:
            <select name="ctl00$MainContent$Pager1$ddlItemsPerPage" onchange="javascript:setTimeout('__doPostBack(\'ctl00$MainContent$Pager1$ddlItemsPerPage\',\'\')', 0)"
                id="ctl00_MainContent_Pager1_ddlItemsPerPage">
                <option value="10">10</option>
                <option selected="selected" value="25">25</option>
                <option value="50">50</option>
                <option value="100">100</option>
            </select>
        </td>
    </tr>
</table>

页
1.
2.
3.
4.
5.
6.
共6人
会话/页面:
10
25
50
100
而且,正如您所看到的,在按钮的输入元素中没有呈现onclick属性。为什么不呢

编辑
罗尼,你为什么这么笨<代码>不使用javascript发布表单

由于按钮是input type=submit,因此不需要javascript来引起回发,因此,即使在按钮上也没有单击

您的页面中是否有任何可能导致问题的UpdatePanel

页面上是否有任何可能阻止回发的验证程序?如果是这种情况,您可能希望将CausesValidation设置为false

您是否已在页面和控件的页面加载中设置断点,而不仅仅是在单击事件中设置断点,以检查是否正常工作


您是否做过任何与禁用ViewState相关的事情?

甚至没有单击按钮,因为它们是input type=submit,因此不需要javascript来引起回发

您的页面中是否有任何可能导致问题的UpdatePanel

页面上是否有任何可能阻止回发的验证程序?如果是这种情况,您可能希望将CausesValidation设置为false

您是否已在页面和控件的页面加载中设置断点,而不仅仅是在单击事件中设置断点,以检查是否正常工作


您是否做了任何与禁用ViewState相关的事情?

我在页面上进行了jQuery验证。将cssclass=“cancel”添加到按钮会使它们不会导致验证。我没有看到验证错误,因为它们显示在隐藏的模式对话框中。我在页面上进行了jQuery验证。将cssclass=“cancel”添加到按钮会使它们不会导致验证。我没有看到验证错误,因为它们显示在隐藏的模式对话框中。