2011-05-23 70 views
0

我已經搜索了這個論壇,似乎沒有其他的威脅我的問題。無法在ASP.NET Gridview中編輯空值

嗯,我有一個gridview有很多字段。其中一些是NULL。

如果我按編輯並編輯一個不爲NULL的字段並按保存,則信息將被正確更改。如果我選擇的字段爲NULL,那麼,

沒有信息被保存。

我將包括我的一些SQL查詢和解決問題的代碼片段。

請,如果你知道我會apriciate你的幫助

SQL查詢

SELECT Request.column1, 
    Request.column2, 
    Request.column3, 
    Request.column4, 
    column5= isnull(Request.column5,'Select Date') 
    FROM Reques 

ASP代碼的第5欄是具有空字段並執行問題的唯一一個

<asp:TemplateField HeaderText="Column 5" SortExpression="column5"> 
        <EditItemTemplate> 
        <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" 
          DataTextField="column5" DataValueField="column5" AppendDataBoundItems="true" 
                 SelectedValue='<%# Eval("column5") %>'> 

         </asp:DropDownList> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("column5") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 

回答

0

你的DDL在「Null」字段出現時如何顯示?具有數據和空白空間的行的集合?

當rowDataBound發生時,您的代碼顯示爲DDL的值? 你是否試圖從代碼隱藏中看到這一點?

例如(vb.net)

Protected Sub mygrids_RowUpdating(ByVal sender As Object, ByVal e As system.Web.UI.WebControls.GridViewUpdateEventArgs) Handles mygrids.RowUpdating 

    Dim grv As GridViewRow = Me.mygrids.Rows(Me.mygrids.EditIndex) ' find index of current edited row 
    Dim dlltype As DropDownList = CType(grv.Cells(1).FindControl("DropDownList1"), DropDownList) 
    e.NewValues("TYP_ID") = dlltype.SelectedValue 

(typ_ID)的是我在我的SqlDataSource設置參數

+0

我正在從另一個表中獲取DDL數據,並且在那裏沒有NULL值。因此,當我修改已經保存的NULL值時,我總是把值從另一個表中取出,並且沒有空值。 – 2011-05-23 19:58:10

0

,請複製粘貼完整的代碼,包括數據源。但我會檢查以下步驟以確保每個都已實施。 1.查看您是否正在處理數據源上的更新/保存方法。查看參數設置是否正確 2.查看是否爲網格設置了DataKeyFieldName,以及設置了編輯模板的特定列。

粘貼全部代碼以獲得詳細信息