これは非常に基本的で、ほとんど基本的なものであることがわかります。GridViewの編集ボタンが入力ボックスのデータで更新されない
私はデータベースからクエリを実行しているグリッドビューテーブルを持っており、VS17を使用して編集列を追加しようとしています。デザイナーのレイアウトを使用して次のコードを生成しましたが、編集ボタンをクリックすると行が編集可能になりますが、更新ステートメントはデータベースを更新しません。更新をクリックすると、ページがリフレッシュされ、テーブルが消えます。
どこが間違っていますか?また、私は前任者が列名で使用したスペルミスを認識しています。
ここでのCSファイルの:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CMS.PortalControls;
using CMS.GlobalHelper;
using CMS.TreeEngine;
using CMS.CMSHelper;
using CMS.ExtendedControls;
public partial class CMSWebParts_Custom_Intranet_Data_inventorycountsheetcategorydatagridedit: CMSAbstractWebPart
{
/// <summary>
/// Enables or disables resolving of inline controls.
/// </summary>
public bool ResolveDynamicControls
{
get
{
return ValidationHelper.GetBoolean(this.GetValue("ResolveDynamicControls"), true);
}
set
{
this.SetValue("ResolveDynamicControls", value);
}
}
/// <summary>
/// Enables or disables HTML encoding of text.
/// </summary>
public bool EncodeText
{
get
{
return ValidationHelper.GetBoolean(this.GetValue("EncodeText"), false);
}
set
{
this.SetValue("EncodeText", value);
}
}
/// <summary>
/// Content loaded event handler.
/// </summary>
public override void OnContentLoaded()
{
base.OnContentLoaded();
SetupControl();
}
/// <summary>
/// Initializes the control properties.
/// </summary>
protected void SetupControl()
{
if (this.StopProcessing)
{
// Do not process
}
else
{
}
}
/// <summary>
/// Reloads the control data.
/// </summary>
public override void ReloadData()
{
base.ReloadData();
SetupControl();
}
}
非常に基本的な、私は知っているが、これは私の得意ではないと私は見つけることができないよう:
<%@ Control Language="C#" AutoEventWireup="true" Inherits="CMSWebParts_Custom_Intranet_Data_inventorycountsheetcategorydatagridedit" CodeFile="~/CMSWebParts/Custom/Intranet/Data/inventorycountsheetcategorydatagridedit.ascx.cs" %>
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="PartCatagoriesID" DataMember="DefaultView" DataSourceID="SqlDataSource1" EnableModelValidation="False">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="CategoryName" HeaderText="CategoryName" SortExpression="CategoryName" />
<asp:BoundField DataField="CategroyDescription" HeaderText="CategroyDescription" SortExpression="CategroyDescription" />
<asp:BoundField DataField="PartCatagoriesID" HeaderText="PartCatagoriesID" InsertVisible="False" ReadOnly="True" SortExpression="PartCatagoriesID" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [Form_IntranetSharpTransit_PartCategories] WHERE [PartCatagoriesID] = ?" EnableViewState="False" InsertCommand="INSERT INTO [Form_IntranetSharpTransit_PartCategories] ([CategoryName], [CategroyDescription], [PartCatagoriesID]) VALUES (?, ?, ?)" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT [CategoryName], [CategroyDescription], [PartCatagoriesID] FROM [Form_IntranetSharpTransit_PartCategories]" UpdateCommand="UPDATE [Form_IntranetSharpTransit_PartCategories] SET [CategoryName] = ?, [CategroyDescription] = ? WHERE [PartCatagoriesID] = ?">
<DeleteParameters>
<asp:Parameter Name="PartCatagoriesID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="CategoryName" Type="String" />
<asp:Parameter Name="CategroyDescription" Type="String" />
<asp:Parameter Name="PartCatagoriesID" Type="Int32" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="CategoryName" Type="String" />
<asp:Parameter Name="CategroyDescription" Type="String" />
<asp:Parameter Name="PartCatagoriesID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
はここASCXファイルです文書の適用可能な例またはビット。どんな助けもありがとう!
私はこのアドバイスを使ってGridView1_RowEditingメソッドを作成しました。基本的には、このメソッドは何とかフォームにwhatsを格納し、OnRowUpdatingメソッドは何をしますか?いくつかの種類のクエリを実行して更新しますか? –
データテーブルとデータアダプタの使用を検討することをお勧めします。この[リンク](https://msdn.microsoft.com/en-us/library/z1z2bkx2(v = vs.110).aspx)が役に立ちます。 – gh0st
ありがとう!私は昼食の際にデータテーブルを読んで見ていきます! –