【问题标题】:ASPxGridView and LinqServerModeDataSource, inserting rows by stored procedureASPxGridView 和 LinqServerModeDataSource,通过存储过程插入行
【发布时间】:2011-06-07 18:29:19
【问题描述】:

我有一个使用 ASPxGridView 的页面,为了填充 GridView,我使用了 LinqServerModeDataSource 控件,该控件通过 SQL 视图从 MS SQL Server 获取数据。到目前为止一切顺利,但问题来了。

我想在数据库中插入数据,所以我正在构建一个自定义表单

<Templates>
    <EditForm>
        Company Name: <dx:ASPxTextBox ID="CompanyName" runat="server" />
        Company Mail: <dx:ASPxTextBox ID="Email" runat="server" />

        <dx:ASPxGridViewTemplateReplacement ID="UpdateButton" ReplacementType="EditFormUpdateButton" runat="server" />
        <dx:ASPxGridViewTemplateReplacement ID="CancelButton" ReplacementType="EditFormCancelButton" runat="server" />

    </EditForm>
</Templates>

这是自定义表单的示例

相当基本的东西,在这种情况下,公司名称转到一张表,电子邮件转到另一张表。这一切都是通过调用存储过程来处理的。或者这就是计划。

有人知道怎么做吗?

感觉好像我一直在尝试所有方法,LinqServerModeDataSource1_Inserting、ASPxGridView1_RowInserting 等等,但没有。这是失败的代码之一。 devexpress 文档更糟糕,但我们不要去那里不是一个快乐的地方。

protected void LinqServerModeDataSource1_Inserting(object sender, DevExpress.Data.Linq.LinqServerModeDataSourceEditEventArgs e)
{
    // Some magic to insert data here
    ASPxGridView1.CancelEdit();
}

因此,我们非常感谢任何建议或帮助。

谢谢!

【问题讨论】:

    标签: devexpress aspxgridview


    【解决方案1】:

    “我想在数据库中插入数据,所以我正在构建一个自定义表单”ASPxGridView 可以为您完成所有这些工作,而无需您至少使用 sqldb 制作自定义模板 如果我要在 sqldatasource 下面定义一个删除命令和/或编辑命令,我已经可以删除和编辑 gridview 中的信息

      <dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" 
            ClientIDMode="AutoID" DataSourceID="SqlDataSource1">
            <Columns>
                <dx:GridViewCommandColumn VisibleIndex="0">
                    <EditButton Visible="True">
                    </EditButton>
                    <NewButton Visible="True">
                    </NewButton>
                    <DeleteButton Visible="True">
                    </DeleteButton>
                </dx:GridViewCommandColumn>
                <dx:GridViewDataTextColumn FieldName="Naam" VisibleIndex="0">
                </dx:GridViewDataTextColumn>
                <dx:GridViewDataTextColumn FieldName="Adres" VisibleIndex="1">
                </dx:GridViewDataTextColumn>
                <dx:GridViewDataTextColumn FieldName="Postcode" VisibleIndex="2">
                </dx:GridViewDataTextColumn>
                <dx:GridViewDataTextColumn FieldName="Plaats" VisibleIndex="3">
                </dx:GridViewDataTextColumn>
            </Columns>
        </dx:ASPxGridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            SelectCommand="SELECT [Name], [Address], [Postcode], [City] FROM [Somewhere]">
        </asp:SqlDataSource>
    

    但如果你真的想使用自定义插入或删除,你可以这样做

    protected void ASPxGridView4_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
    {
        DataColumn[] esl = new DataColumn[] { dt.Columns["SQLWaarde"] };
        if (ds.Tables[0].PrimaryKey == null || ds.Tables[0].PrimaryKey == esl)
        {
            ds.Tables[0].PrimaryKey = new DataColumn[] { dt.Columns["SQLWaarde"] };
        }
        DataRow[] delRow = ds2.Tables[0].Select("IndWaardeType = '" + e.Values[1] + "' AND SQLWaarde = '" + e.Values[2] + "'");
        ds2.Tables[0].Rows.Remove(delRow[0] as DataRow);
    
        e.Cancel = true;
        ASPxGridView4.CancelEdit();
        Session["ds2"] = ds2;
    }
    protected void ASPxGridView4_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
    {
        ndr2 = ds2.Tables[0].NewRow();
        ndr2[0] = e.NewValues[0];
        ndr2[1] = e.NewValues[1];
        ndr2[2] = e.NewValues[2];
        ds2.Tables[0].Rows.Add(ndr2);
    
        e.Cancel = true;
        ASPxGridView4.CancelEdit();
        Session["ds2"] = ds2;
    }
    

    我上次就是这么干的。我使用了数据表并将其存储在会话中 bla bla 真的只是在尝试,但它工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 2021-07-22
      • 2011-02-01
      • 1970-01-01
      相关资源
      最近更新 更多