2013-05-08 33 views
4

我已經能夠解決最初的問題,不能一直插入記錄,但一個新的錯誤信息收集起來。現在你能告訴我爲什麼我得到'GridView'GridView1'觸發了事件RowUpdating而沒有處理。'錯誤消息

,我越來越The GridView 'GridView1' fired event RowUpdating which wasn't handled.

會出現這種錯誤,當我點擊更新按鈕,更新記錄的列。

首先,我點擊編輯按鈕。這暴露了更新/取消按鈕。

當我點擊更新按鈕,我得到上述錯誤。

我的第一個想法是GridView需要onRowUpdating,但添加後(請參閱標記代碼),仍然會得到相同的錯誤。

這有點令人沮喪。

這是代碼。

Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) 
    Dim dd As DropDownList = DirectCast(GridView1.Rows(e.RowIndex).FindControl("ddlstatus"), DropDownList) 
    e.NewValues("status") = dd.SelectedItem.Text 
End Sub 

標記:

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
     AutoGenerateColumns="False" DataKeyNames="reqnum" AllowPaging="True" 
     CellPadding="4" ForeColor="#333333" GridLines="None" Visible="True" 
     OnRowDataBound="gvRowDataBound" OnRowEditing="GridView1_RowEditing" 
     onrowupdating="GridView1_RowUpdating" 
     EnableViewState="False" AutoGenerateDeleteButton="True" 
     AutoGenerateEditButton="True"> 
     <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
     <Columns> 
     <asp:BoundField DataField="rownum" HeaderText="rownum" InsertVisible="False" ReadOnly="True" 
      SortExpression="rownum" /> 
     <asp:BoundField DataField="reqnum" HeaderText="reqnum" SortExpression="reqnum" /> 
     <asp:BoundField DataField="reqrecdate" HeaderText="reqrecdate" SortExpression="reqrecdate" /> 
     <asp:BoundField DataField="reqrecfrom" HeaderText="reqrecfrom" SortExpression="reqrecfrom" /> 
     <asp:BoundField DataField="skillsets" HeaderText="skillsets" SortExpression="skillsets" /> 
     <asp:BoundField DataField="application" HeaderText="application" SortExpression="application" /> 
     <asp:BoundField DataField="hoursperweek" HeaderText="hoursperweek" SortExpression="hoursperweek" /> 
     <asp:BoundField DataField="fromdate" HeaderText="fromdate" SortExpression="fromdate" /> 
     <asp:BoundField DataField="todate" HeaderText="todate" SortExpression="todate" /> 
     <%-- <asp:BoundField DataField="status" HeaderText="status" SortExpression="status" />--%> 
     <asp:TemplateField HeaderText="status"> 
      <EditItemTemplate> 
      <asp:DropDownList id="ddlstatus" CssClass="dropdown" DataSourceID="DSforDDL" runat="server"> 
       <asp:ListItem Text="none" Value=""></asp:ListItem> 
       <asp:ListItem>Not Started</asp:ListItem> 
       <asp:ListItem>Pending</asp:ListItem> 
       <asp:ListItem>Completed</asp:ListItem> 
      </asp:DropDownList> 
      </EditItemTemplate> 
      <ItemTemplate> 
      <asp:Label ID="lblstatus" runat="server" Text='<% #Bind("status") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="statusupdate" HeaderText="statusupdate" SortExpression="statusupdate" /> 
     <asp:BoundField DataField="statusupby" HeaderText="statusupby" SortExpression="statusupby" /> 
     </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> 
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Distinct [rownum],[reqnum], [reqrecdate], [reqrecfrom], [skillsets], [application], [hoursperweek], [fromdate], [todate], [status], [statusupdate], [statusupby] FROM [Term] ORDER BY [reqnum]" 
UpdateCommand="INSERT INTO Term(reum, reqrecdate, reqrecfrom, skillsets, application, hoursperweek, fromdate, todate, status, statusupby, statusupdate) VALUES (@reum,@reqrecdatelbltxt, @reqrecfromlbltxt, @skillsets, @application, @hoursperweek,@fromdate,@todate, @status, @lognametxt, @logdatetxt)" 

    <DeleteParameters> 
    <asp:Parameter Name="rownum" Type="Int32" /> 
    </DeleteParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="reqnum" Type="String" /> 
     <asp:Parameter DbType="DateTime" Name="reqrecdate" /> 
     <asp:Parameter Name="reqrecfrom" Type="String" /> 
     <asp:Parameter Name="skillsets" Type="String" /> 
     <asp:Parameter Name="application" Type="String" /> 
     <asp:Parameter Name="hoursperweek" Type="Int32" /> 
     <asp:Parameter DbType="DateTime" Name="fromdate" /> 
     <asp:Parameter DbType="DateTime" Name="todate" /> 
     <asp:Parameter Name="status" Type="String" /> 
     <asp:Parameter DbType="DateTime" Name="statusupdate" /> 
     <asp:Parameter Name="statusupby" Type="String" /> 
     <asp:Parameter Name="rownum" Type="Int32" /> 
    </UpdateParameters> 
    </asp:SqlDataSource> 

非常感謝提前對您的幫助。

+1

我很好奇爲什麼你的gridview的更新命令包含'insert'語句? – 2013-05-08 14:26:20

+0

@Damien,問題在於無論它是具有UpdateCommand的Update語句的更新語句還是具有InsertComment的Insert語句或具有UpdateCommand的Insert語句都沒關係,它仍然不會將數據保存到數據庫中。 – 2013-05-08 15:03:31

回答

0

gridView跟蹤處理程序以確保已添加某些內容來有意處理更新。

除非您手動調用其他代碼中的「AddHandler」,否則您的事件方法中不會看到處理 claus,它會截取所引發的事件。

+0

感謝您的及時迴應。我想你的意思是把這個'把GridView1.RowUpdating'添加到'GridView1_RowUpdating'子。我補充說,但仍然有相同的錯誤。 – 2013-05-10 15:23:07

+0

在我用這種方式使用網格的一個項目中,我正在處理「RowCancellingEdit」,「RowCommand」,「RowDeleting」,「RowEditing」,「RowUpdating」以及所有函數都在工作。可能他們錯誤地標記了反饋信息之一,嘗試添加處理每個反饋信息的空程序。 – DarrenMB 2013-05-10 16:40:09

相關問題