2017-07-06 30 views
1

これは非常に基本的で、ほとんど基本的なものであることがわかります。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ファイルです文書の適用可能な例またはビット。どんな助けもありがとう!

答えて

0

グリッドビューに次の属性を追加して、それらをコードの背後に実装する必要がある場合があります。 VS17を使用している場合は、これを行うのに役立ちます。グリッドビュー内では、OnRowEditingOnRowUpdatingと入力します。それはあなたを始めるはずです。おそらくOnRowCancelingEditメソッドも実装したいと思うでしょう。

+0

私はこのアドバイスを使ってGridView1_RowEditingメソッドを作成しました。基本的には、このメソッドは何とかフォームにwhatsを格納し、OnRowUpdatingメソッドは何をしますか?いくつかの種類のクエリを実行して更新しますか? –

+0

データテーブルとデータアダプタの使用を検討することをお勧めします。この[リンク](https://msdn.microsoft.com/en-us/library/z1z2bkx2(v = vs.110).aspx)が役に立ちます。 – gh0st

+0

ありがとう!私は昼食の際にデータテーブルを読んで見ていきます! –

関連する問題