当文本框为空时,ASP.NET GridView不保存

时间:2013-06-07 10:27:22

标签: asp.net gridview entitydatasource

我有一个可以使用entitydatasource编辑的GridView,如果我的用户想要删除其中一个字段中的文本,则不能。他们可以用一个空格替换文本然后保存,但如果文本框完全为空,则保存操作不会执行任何操作。

我如何打击这个?

由于

<asp:EntityDataSource ID="EntityDataSource1" runat="server" 
                          ConnectionString="name=CS3Entities" DefaultContainerName="CS3Entities" 
                          EnableFlattening="False" EnableUpdate="True" 
                          EntitySetName="ProductAlertStatuses"
                          Where="it.AlertType != '0'"  
                          OrderBy="it.Department DESC, it.AlertType DESC"/>
    <br/>
    <asp:GridView runat="server" ID="ActionPlanGV" 
        DataSourceID="EntityDataSource1" 
        OnDataBound="ActionPlanGV_OnRowDataBound"   
        CssClass="mGrid visibleGrid" 
        AutoGenerateColumns="False" 
        DataKeyNames="ProductStatusID">
        <Columns>
            <asp:TemplateField SortExpression="Department" ItemStyle-CssClass="center">
                <HeaderTemplate>
                    <asp:Label ID="DepartmentColHeader" ToolTip="Moulding or Finishing Department" runat="server" Text="Dept" />
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:Label ID="DepartmentColtxt" runat="server" Text='<%# Eval("Department") %>' />
                </ItemTemplate>

            <ItemStyle CssClass="center"></ItemStyle>
            </asp:TemplateField>

            <asp:TemplateField SortExpression="AlertType" ItemStyle-CssClass="center">
                <HeaderTemplate>
                    <asp:Label ID="AlertTypeColHeader" ToolTip="Alert Type" runat="server" Text="Alert" />
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:Label ID="AlertTypeColtxt" runat="server" Text='<%# ItemDAL.GetAlertStatusColourFromNumber(Eval("AlertType").ToString()) %>' />
                </ItemTemplate>

            <ItemStyle CssClass="center"></ItemStyle>
            </asp:TemplateField>

            <%--<asp:BoundField DataField="DateAlertRaised" DataFormatString="{0:d}" HeaderText="Date Alert Raised" ReadOnly="True" SortExpression="DateAlertRaised" />--%>

            <asp:TemplateField>
                <HeaderTemplate>
                    <asp:Label ID="ItemIDHeader" ToolTip="Item Code" runat="server" Text="Item" />
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:HyperLink ID="ItemID"
                        runat="server"
                        Text='<%# Eval("ItemID") %>'
                        NavigateUrl='<%# Url.GetUrl("ViewItem", Eval("ItemID")) %>' />
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Scrap /Parts" ItemStyle-Width="7%" SortExpression="ActionPlanScrapParts">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" TextMode="MultiLine" Width="75" Height="75" runat="server" Text='<%# Bind("ActionPlanScrapParts") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("ActionPlanScrapParts") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Defect Issue / Description" ItemStyle-Width="15%" SortExpression="ActionPlanDefectDescription">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox2" TextMode="MultiLine" Width="100" Height="75" runat="server" Text='<%# Bind("ActionPlanDefectDescription") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("ActionPlanDefectDescription") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Root Cause" ItemStyle-Width="15%" SortExpression="ActionPlanRootCause">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox3" TextMode="MultiLine" Width="100" Height="75"  runat="server" Text='<%# Bind("ActionPlanRootCause") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label3" runat="server" Text='<%# Bind("ActionPlanRootCause") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Corrective Action<div style='font-size:8px;line-height:8px;'>FN16, FN17, FN03, FN05,<br/>Change Note Number</div>-Who? Due By?" ItemStyle-Width="20%" SortExpression="ActionPlanCorrectiveAction">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox4" TextMode="MultiLine" Width="100" Height="75"  runat="server" Text='<%# Bind("ActionPlanCorrectiveAction") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label4" runat="server" Text='<%# Bind("ActionPlanCorrectiveAction") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Preventative Action<br/>-Who? Due By?" ItemStyle-Width="15%" SortExpression="ActionPlanPreventativeAction">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox5" TextMode="MultiLine" Width="100" Height="75"  runat="server" Text='<%# Bind("ActionPlanPreventativeAction") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label5" runat="server" Text='<%# Bind("ActionPlanPreventativeAction") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Reviewed & Closed" ItemStyle-Width="10%" SortExpression="ActionPlanReviewedClosed">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox6" TextMode="MultiLine" Width="75" Height="75"  runat="server" Text='<%# Bind("ActionPlanReviewedClosed") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label6" runat="server" Text='<%# Bind("ActionPlanReviewedClosed") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Edit" ItemStyle-CssClass="noprint" HeaderStyle-CssClass="noprint">
                <EditItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Update" Text="Save"/>
                    <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Cancel" Text="Cancel"/>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:LinkButton ID="lbEdit2" runat="server" CommandName="Edit" Text="Edit"/>
                </ItemTemplate>
            </asp:TemplateField>

        </Columns>
    </asp:GridView>

有一种代码隐藏方法,但不触及数据:

protected void ActionPlanGV_OnRowDataBound(object sender, EventArgs eventArgs)
{
    foreach (GridViewRow row in ActionPlanGV.Rows)
    {
        var alertTypeColtxt = (Label)row.FindControl("AlertTypeColtxt");
        if (alertTypeColtxt != null)
        {
            if (alertTypeColtxt.Text == "Red")
                alertTypeColtxt.Text = "<svg width='18' height='18'><circle cx='9' cy='9' r='8' fill='red' /></svg>";

            if (alertTypeColtxt.Text == "Amber")
                alertTypeColtxt.Text =
                    "<svg width='15' height='15'><rect x='0' y='0' height='15' width='15' fill='orange' /></svg>";

            if (alertTypeColtxt.Text == "Green")
                alertTypeColtxt.Text = "<svg width='18' height='18'><circle cx='9' cy='9' r='8' fill='green' /></svg>";

        }
    }
}

0 个答案:

没有答案