从ASPxGridView中的自定义窗体中检索值

时间:2011-06-07 13:22:15

标签: asp.net devexpress aspxgridview

我有一个为ASPxGridView制作的自定义编辑表单,但在插入时检索值时遇到很大问题。

模板:

<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>

失败,e.NewValues为空

protected void ASPxGridView1_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
{
    string CompanyName = (string)e.NewValues["CompanyName"]; // (or .toString())
    string Email = (string)e.NewValues["Email"];
}

有谁知道如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:5)

e.NewValues集合为空,因为您没有将编辑器绑定到数据。要使代码正常工作,应按如下方式进行更改:

Company Name: <dx:ASPxTextBox ID="CompanyName" runat="server" Value="<% #Bind('CompanyName')%>"/>
Company Mail: <dx:ASPxTextBox ID="Email" runat="server" Value="<% #Bind('Email')%>"/>

答案 1 :(得分:0)

看起来您尝试将NewValues分配给字符串。获取NewValues似乎是一个更好的事件RowUpdatingEvent;您还可以访问OldValues。看看:http://documentation.devexpress.com/#AspNet/DevExpressWebASPxGridViewASPxGridView_RowUpdatingtopic