2010-09-10 2 views
2

Посмотрел на различные сообщения здесь, но не смог найти его совсем, я знаю, что это будет что-то маленькое, но я просто не могу понять это.Удалить linkbutton не стрелять внутри сетки в панели обновления

Я использую gridview внутри панели обновления. В gridview используется столбец удаленной автоматической генерации, преобразованный в столбец полей шаблона. Вот код:

<asp:GridView ID="gvFiles" runat="server" AutoGenerateColumns="False" 
     CellPadding="4" 
     ForeColor="#333333" GridLines="None"> 
     <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
     <Columns> 
      <asp:TemplateField HeaderText="Files" HeaderStyle-HorizontalAlign="Left"> 

      <ItemStyle Width="210px" /> 
      <ItemTemplate> 
       <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#Eval("Id", "~/Download.aspx?id={0}")%>'><%#Eval("LinkName")%></asp:HyperLink>,<br /> 
       Last Modified: <%#Me.cutDate(Eval("DateModified"))%> 
      </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField ShowHeader="False" HeaderText="Team"> 
      <ItemStyle Width="150px" /> 
      <HeaderStyle HorizontalAlign="Left"></HeaderStyle> 
       <ItemTemplate> 
        <%#Me.GetTeamName(Eval("TeamId"))%> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField ShowHeader="False"> 
       <ItemTemplate> 
        <asp:LinkButton ID="lbDelete" runat="server" CausesValidation="False" 
         CommandName="Delete" Text="Delete" OnClientClick="return confirm('Are you sure you want to delete this post?');"></asp:LinkButton> 
       </ItemTemplate> 
      </asp:TemplateField> 

     </Columns> 
     <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
     <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
     <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <EditRowStyle BackColor="#999999" /> 
     <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
    </asp:GridView> 

У меня этот точно такой же код работает нормально, когда он не находится внутри панели обновления. Что мне нужно сделать, чтобы заставить это работать?

Редактировать: Забыл, что мои настройки панели обновления по умолчанию. Также случается, что вы нажимаете кнопку «Удалить», появляется сообщение с подтверждением, вы нажимаете «Да», а затем ничего не происходит.

+0

Вы поймаете это событие в handmer события onCommand ??? – Azhar

+0

Нет, я должен быть? Зачем нужен этот обработчик определенного события только внутри панели обновления? – SventoryMang

ответ

0

Я думаю, что вам придется добавить

<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="btnFindOrder" EventName="Click" /> 
</Triggers> 
+0

Я предполагаю, что ControlID должен быть «lbDelete», и я попробовал это, но он говорит: «Элемент управления с идентификатором« lbDelete »не найден для триггера в UpdatePanel« UpdatePanel1 ».' – SventoryMang

+0

lbDelete находится внутри gridview, что означает его будет иметь идентификатор ctrl001_gvFiles_ (что-то) _lbDelete. Это что-то вроде этого. Запустите страницу, а затем найдите lbDelete. Проблема с этим заключается в том, что каждая созданная строка будет иметь другой идентификатор для lbDelete и должна увеличивать его. – VoltaicShock

1

я с той же проблемой с помощью кнопки редактирования только, все остальные работали отлично, который я думал, что было странно. Поэтому я добавил событие onclick к кнопке редактирования, которая восстанавливает gridview, и это сработало. В контрольных точках я увидел, что gridview правильно установил editIndex при первом щелчке, но не изменил шаблоны editItem до второго щелчка. Надеюсь, это даст вам некоторые идеи.

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