2015-10-15 2 views
0

Я работаю на ASP.NET с GridView, который я сделал интерактивным с помощью этого метода:Отключить событие щелчка через GridView ASP.NET

protected void OnRowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
    { 
     GridView gr = (GridView)sender; 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      e.Row.Attributes["onmouseover"] = "this.style.cursor='hand';this.style.background='#3260a0';;this.style.color='white'"; 
      e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';this.style.background='white';this.style.color='black'"; 
      e.Row.Attributes["onclick"]  = Page.ClientScript.GetPostBackClientHyperlink(RH, "Select$" + e.Row.RowIndex); 
      e.Row.Attributes["style"]  = "cursor:pointer"; 
     }   
    } 

Теперь

Я хочу, чтобы отключить эту функциональность когда я нажимаю другую кнопку

, однако я не знаю, как это сделать. Я попытался использовать Enable = false, но, скорее всего, это не влияет на скрипт, и это позволяет мне снова щелкнуть по сетке. Я хочу, чтобы, когда я нажимаю кнопку, чтобы отключить сетку, она мгновенно остановит мышь над анимацией и onclick, но не нашла подходящего пути.

Вот код GridView только в случае, если:

<asp:GridView ID="RH" runat ="server" margin-right ="auto" 
     margin-left="auto" OnSelectedIndexChanged="RH_SelectedIndexChanged" 
     OnRowDataBound ="OnRowDataBound" CssClass ="GridView" HorizontalAlign="Center" 
     AllowPaging="true" OnPageIndexChanging="OnPageIndexChanging" PageSize="5">    
</asp:GridView> 
+0

Может совместно сгенерировать HTML-код? –

ответ

0

Пусть у вас есть кнопка для отключения:

<asp:Button ID="btn" runat="server" OnClick="btn_Click" Text="Disable Click" /> 

Затем на кнопку нажать, мы можем удалить OnClick evented добавлены динамически:

protected void btn_Click(object sender, EventArgs e) 
     { 
      foreach (GridViewRow row in RH.Rows) 
      { 
       row.Attributes.Remove("onclick"); 
      } 
     } 

Если вам нужно событие onclick, добавьте этот атрибут с помощью другой кнопки:

protected void btn2_Click(object sender, EventArgs e) 
     { 
      foreach (GridViewRow row in RH.Rows) 
      { 
       row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(RH, "Select$" + row.RowIndex); 
      } 
     } 
+0

Спасибо! Наконец, это сработало, я пробовал все сложные вещи, но не знал, что это может быть так просто. –

+0

Добро пожаловать. Помочь это поможет. –

Смежные вопросы