2011-05-23 93 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,以及设置了编辑模板的特定列。

粘贴全部代码以获得详细信息