我有一个LinkButton,可以触发OnClick事件来更新一些标签;然而,在第一次触发OnClick之后,当我点击运行相同OnClick事件的另一个(或相同的)LinkButton时,它将不会再次触发。 (这是一个人员列表,每个人都是一个LinkButton,点击一个会显示他们的详细信息)
如果我离开页面几分钟,它将再次起作用,几乎就像防止OnClick触发超时一样。当然,这对用户没有任何用处!
这是我的LinkButtons的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") %>' />
<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的解决方案。有谁知道是什么原因引起的,或者我可能出错的地方?
答案 0 :(得分:0)
尝试为链接按钮提供OnClientClick =“Page_BlockSubmit = false”