【问题标题】:How to update GridViewDataComboBoxColumn items from designer/Graphically in asp.net devexpress gridview如何在asp.net devexpress gridview中从设计器/图形更新GridViewDataComboBoxColumn项目
【发布时间】:2016-10-17 08:44:06
【问题描述】:

我在 gridview 控件中添加了 GridViewDataComboBoxColumn 和列表项,当我单击编辑并从 GridViewDataComboBoxColumn 中选择项目并单击列表项未更新的更新按钮时,我想更新它我是一名设计师,我不懂c#请给设计师/图形的解决方案。

<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" Width="100%" DataSourceID="SqlDataSource1" KeyFieldName="ID" EnableTheming="True" Theme="Office2010Blue">
        <Columns>
            <dx:GridViewCommandColumn ShowEditButton="True" VisibleIndex="0">
                <HeaderTemplate>
                    Click &quot;Edit&quot; button below for Update
                </HeaderTemplate>
            </dx:GridViewCommandColumn>
            <dx:GridViewDataTextColumn FieldName="ID" ReadOnly="True" VisibleIndex="1">
                <EditFormSettings Visible="False" />
            </dx:GridViewDataTextColumn>
            <dx:GridViewDataTextColumn FieldName="ProjectName" VisibleIndex="2" ReadOnly="True">
            </dx:GridViewDataTextColumn>
            <dx:GridViewDataTextColumn FieldName="Menu" VisibleIndex="3" ReadOnly="True">
            </dx:GridViewDataTextColumn>
            <dx:GridViewDataTextColumn FieldName="ErrorDescription" VisibleIndex="5">
            </dx:GridViewDataTextColumn>
            <dx:GridViewDataTextColumn FieldName="DeveloperRemarks" VisibleIndex="6" ReadOnly="True">
            </dx:GridViewDataTextColumn>
            <dx:GridViewDataTextColumn FieldName="ReportedBy" VisibleIndex="7" ReadOnly="True">
            </dx:GridViewDataTextColumn>
            <dx:GridViewDataTextColumn FieldName="FixedBy" VisibleIndex="8" ReadOnly="True">
            </dx:GridViewDataTextColumn>
            <dx:GridViewDataComboBoxColumn FieldName="ErrorType" VisibleIndex="4">
                <PropertiesComboBox DropDownStyle="DropDownList">
               <Items>
                   <dx:ListEditItem Text="ScreenValidation" />
                   <dx:ListEditItem Text="Validation" />
                   <dx:ListEditItem Text="Syntax"  />
                   <dx:ListEditItem Text="Logical" />
                   <dx:ListEditItem Text="Layout" />
               </Items>
                    </PropertiesComboBox>
            </dx:GridViewDataComboBoxColumn>
            <dx:GridViewDataComboBoxColumn FieldName="Status" VisibleIndex="9">
                <PropertiesComboBox DropDownStyle="DropDownList">
               <Items>
                   <dx:ListEditItem Text="Bug"/>
                   <dx:ListEditItem Text="Fixed"/>
                   <dx:ListEditItem Text="Closed" />
               </Items>
                    </PropertiesComboBox>
            </dx:GridViewDataComboBoxColumn>
        </Columns>
        <SettingsDataSecurity AllowDelete="False" AllowInsert="False" />
    </dx:ASPxGridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ErrorReportDBConnectionString %>" SelectCommand="SELECT * FROM [BugsReport]" UpdateCommand="UPDATE [BugsReport] SET [ProjectName] = @ProjectName, [Menu] = @Menu, [ErrorType] = @ErrorType, [ErrorDescription] = @ErrorDescription, [DeveloperRemarks] = @DeveloperRemarks, [ReportedBy] = @ReportedBy, [FixedBy] = @FixedBy, [Status] = @Status WHERE [ID] = @ID">
        <UpdateParameters>
            <asp:Parameter Name="ProjectName" Type="String" />
            <asp:Parameter Name="Menu" Type="String" />
            <asp:Parameter Name="ErrorType" Type="String" />
            <asp:Parameter Name="ErrorDescription" Type="String" />
            <asp:Parameter Name="DeveloperRemarks" Type="String" />
            <asp:Parameter Name="ReportedBy" Type="String" />
            <asp:Parameter Name="FixedBy" Type="String" />
            <asp:Parameter Name="Status" Type="String" />
            <asp:Parameter Name="ID" Type="Int32" />
        </UpdateParameters>
    </asp:SqlDataSource>
    <dx:ASPxButton ID="ASPxButton1" runat="server" OnClick="ASPxButton1_Click" Text="Click Here To Insert New Record" Theme="Office2003Blue">
    </dx:ASPxButton>

【问题讨论】:

  • 目前尚不清楚“更新”是什么意思——这是否意味着以任何一种方式更新设计师生成的标记或您的问题主要与运行时行为有关(可能是更新数据)。请更好地解释您的要求。而且,恐怕 ASPxGridView 主要面向开发人员,而不是面向设计人员。在不了解 C# 或 VB.NET 的情况下,你不可能做任何你想做的事情。
  • 是的,我想从 ListEditItem 更新我的数据

标签: devexpress


【解决方案1】:

为了支持更新数据库中的数据,需要在SqlDataSource 中声明一个合适的UpdateCommand。例如:

UpdateCommand="UPDATE [BugsReport] SET [ErrorType] = @ErrorType WHERE ID = @ID

SqlDataSource 函数的完整解释和示例在这个博客中提供:Inserting, Updating, and Deleting Data with the SqlDataSource

当绑定到 SqlDataSource 组件时,ASPxGridView 可以自动发出 UPDATE 查询。要使此功能正常工作,必须指定KeyFieldName 属性值。它应该指向数据源中的标识列。

【讨论】:

    猜你喜欢
    • 2018-01-04
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    相关资源
    最近更新 更多