Событие On-Click запускается в первый раз, но не в последующие. - PullRequest
1 голос
/ 30 июля 2010

У меня есть LinkButton, который запускает событие OnClick для обновления некоторых ярлыков;однако после первого запуска OnClick он не сработает снова, когда я нажму на другой (или тот же) LinkButton, который запускает то же событие OnClick.(Это список людей, каждый из которых имеет ссылку LinkButton, и при нажатии на одну из них отображаются их подробности)

Если я оставлю страницу на несколько минут, она снова будет работать, почти как если бы то, что мешало запуску OnClick по временииз.Конечно, это не будет никакой пользы для пользователей!

Это мой код ASP.NET для LinkButtons (инкапсулированный в 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>

В событии Page_Loadв коде C # следующие данные заполняют 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 голосов
/ 26 мая 2014

Попробуйте указать OnClientClick = "Page_BlockSubmit = false" для кнопки ссылки

...