点击事件第一次触发,但不会随后触发

时间:2010-07-30 09:07:57

标签: c# events asp.net-3.5 onclick

我有一个LinkBut​​ton,可以触发OnClick事件来更新一些标签;然而,在第一次触发OnClick之后,当我点击运行相同OnClick事件的另一个(或相同的)LinkBut​​ton时,它将不会再次触发。 (这是一个人员列表,每个人都是一个LinkBut​​ton,点击一个会显示他们的详细信息)

如果我离开页面几分钟,它将再次起作用,几乎就像防止OnClick触发超时一样。当然,这对用户没有任何用处!

这是我的LinkBut​​tons的ASP.NET代码(封装在DataList中):

<asp:DataList ID="DataList1" runat="server" DataKeyField="AdmissionNumber">
        <ItemTemplate>
            <asp:CheckBox ID="CheckBox" runat="server" OnCheckedChanged="Checkbox_CheckedChanged" ViewState="true"/>
            <asp:LinkButton ID="LinkButton" runat="server" OnClick="LinkButton_OnClick">
                <asp:HiddenField ID="hfAdmissionNumber" Value='<%# Eval("AdmissionNumber") %>' runat="server"/>
                <asp:Label ID="CalledLabel" runat="server" Text='<%# Eval("Called") %>' />&nbsp;
                <asp:Label ID="SurnameLabel" runat="server" Text='<%# Eval("Surname") %>' />
            </asp:LinkButton><br /><br />
        </ItemTemplate>
</asp:DataList>

在C#代码后面的Page_Load事件中,以下填充DataList:

connection.Open();
SqlDataReader reader = command.ExecuteReader();
DataList1.DataSource = reader;
DataList1.DataBind();
connection.Close();

这是OnClick事件:

protected void LinkButton_OnClick(object sender, EventArgs e)
{
    LinkButton l = (LinkButton)sender;
    HiddenField hfv = (HiddenField)l.Parent.FindControl("hfAdmissionNumber");
    using (SqlConnection connection = new SqlConnection("Data Source=pastonmis01\\inform;Initial Catalog=2009;Integrated Security=True"))
    {
        using (SqlCommand command = new SqlCommand("xProcSportNotParticipantDetails",connection))
        {
            connection.Open( );
            command.CommandType = System.Data.CommandType.StoredProcedure;
            command.Parameters.AddWithValue("@AdmissionNumber", Int32.Parse(hfv.Value));
            SqlDataReader reader = command.ExecuteReader();
            reader.Read();
            lTitle.Text = reader.GetValue(0).ToString();
            lSurname.Text = reader.GetValue(1).ToString();
            lForename.Text = reader.GetValue(2).ToString();
            lCalled.Text = reader.GetValue(3).ToString();
            lDoB.Text = reader.GetValue(4).ToString().Substring(0,10);
            lSex.Text = reader.GetValue(5).ToString();
            reader.Close();
        }
        connection.Close();
    }
}

所有连接都有效,数据被检索等,所以除了OnClick解雇之外的所有工作都有效。我已经对互联网进行了搜索,发现这似乎是自第一个ASP.NET以来一直存在的长期问题,但是没有ASP.NET 3.5的解决方案。有谁知道是什么原因引起的,或者我可能出错的地方?

1 个答案:

答案 0 :(得分:0)

尝试为链接按钮提供OnClientClick =“Page_BlockSubmit = false”