【发布时间】:2017-06-25 18:29:46
【问题描述】:
net devexpress 控件。首先,我尝试在 gridview 上实现这个编辑命令。一切似乎都很好,但我遇到的唯一一个问题是,当我尝试单击编辑链接时,会出现一个弹出表单,我无法在框内输入。最后,当我单击“更新”按钮时,会出现错误提示“对象引用未设置为对象的实例”。请帮我解决这种情况,我在哪里犯了错误。感谢您。
<%@ Register assembly="DevExpress.Web.v17.1, Version=17.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
<asp:Content runat="server" ID="BodyContent1" ContentPlaceHolderID="ContentPlaceHolder1">
<dx:ASPxGridView ID="GridView1" runat="server" ClientInstanceName="GridView1"
KeyFieldName="TestConfigId" AutoGenerateColumns="False" Width="850px"
OnRowUpdating="Gridview1_RowUpdating" >
<Columns>
<dx:GridViewDataTextColumn Caption="TestConfigId" FieldName="TestConfigId" Name="TestConfigId" Visible="true" VisibleIndex="0">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="Main Test" FieldName="MainTest" Name="MainTest" Settings-AllowSort="False" VisibleIndex="1" >
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="Sub Test" FieldName="SubTest" Name="SubTest" Settings-AllowSort="False" VisibleIndex="2" >
</dx:GridViewDataTextColumn>
<dx:GridViewCommandColumn ShowEditButton="true" VisibleIndex="3" Width="100" FixedStyle="Left">
</dx:GridViewCommandColumn>
</Columns>
<Settings HorizontalScrollBarMode="Visible"/>
<SettingsBehavior AutoExpandAllGroups="true"/>
<SettingsBehavior AllowFocusedRow="True"/>
<SettingsResizing ColumnResizeMode="NextColumn"/>
<Styles>
<FixedColumn BackColor="LightYellow"></FixedColumn>
</Styles>
<Settings ShowStatusBar="Visible" />
<SettingsEditing Mode="PopupEditForm" />
</dx:ASPxGridView>
<dx:ASPxPopupControl ID="popupSample" runat="server" ShowCloseButton="true" ShowHeader="true"
PopupHorizontalAlign="WindowCenter" PopupVerticalAlign="WindowCenter">
</dx:ASPxPopupControl>
</asp:Content>
代码隐藏文件
protected void Gridview1_RowUpdating(object sender, ASPxDataUpdatingEventArgs e)
{
SqlConnection con = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "update_test_configuration";
cmd.Parameters.Add("@TestConfigId", SqlDbType.Int).Value = Convert.ToInt32(e.NewValues["TestConfigId"]);
cmd.Parameters.Add("@MainTest", SqlDbType.NVarChar).Value = e.NewValues["MainTest"].ToString();
cmd.Parameters.Add("@SubTest", SqlDbType.NVarChar).Value = e.NewValues["SubTest"].ToString();
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
con.Dispose();
}
存储过程
CREATE PROCEDURE [dbo].[update_test_configuration]
@TestConfigId int = 0,
@MainTest nvarchar(100),
@SubTest nvarchar(100)
AS
BEGIN
SET NOCOUNT ON;
UPDATE dbo.TestConfigMaster
SET MainTest = @MainTest,
SubTest =@SubTest
WHERE TestConfigId = @TestConfigId
END
【问题讨论】:
标签: c# asp.net gridview devexpress