为什么我的asp:Button每隔一段时间回复一次?

时间:2011-10-13 11:05:27

标签: c# asp.net

我有一个只有文本框和按钮的用户控件。当我单击该按钮时,该页面会回发,但该按钮不会出现在Request.Form的AllKeys属性中。页面加载后,如果我再次单击该按钮,它会出现在AllKeys属性中。

在下一次尝试时,第三次点击将没有按钮,但第四次点击将拥有该按钮。

我不知道我错过了什么或如何处理这个问题。为什么我的asp:Button只会在每次点击后回发一个?

控制代码:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchControl.ascx.cs" Inherits="controls.SearchControl" %>
<table style="margin: 0 auto">
   <tr>
     <td style="vertical-align:middle">
        <b>Search ID</b>&nbsp;
        <asp:TextBox ID="txtSearchID" AutoPostBack="true" runat="server" Width="100px"></asp:TextBox>&nbsp;
        <asp:Button ID='btnLoadDetails' OnClick="Search" runat="server" Text='Load Details' />&nbsp;
     </td>
   </tr>
</table>

控制代码背后:

    public event EventHandler onLoad;
    protected virtual void OnLoad(EventArgs e)
    {
        if (onLoad != null)
        {
            onLoad(this, e);
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if ( !IsPostBack )
        {
            if ( Request["searchID"] != null && Conversion.StringToInt( Request["searchID"].ToString() ) > 0 )
            {
                txtSearchID.Text = Request["searchID"].ToString();
            }
        }
        else
        {   // Used to see if teh button appears in Request.Form
            String test = Request.Form[btnLoadDetails.ClientID];
        }
    }


    protected void Search(object sender, System.EventArgs e)
    {
        if (txtShopperID.Text.Trim().Length > 0)
        {
            OnLoad(new EventArgs());
        }
    }

页码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SearchPage.aspx.cs" Inherits="SearchPage" %>    
<%@ Register TagPrefix="search" TagName="searchControl" Src="controls/SearchControl.ascx" %>

<search:searchControl id="searchControl" OnLoad="btnSearch_Click" runat="server" />
<br />
<div id='divResultInformation' runat="server"></div>

0 个答案:

没有答案