2016-04-11 24 views
0

http://puu.sh/oeilN/bf8d288fee.pngC# Visual Studio: Diğer alanlar için doğrulayıcıları etkinleştirmeden GridView'ü nasıl güncellerim? ama her zaman i satırında diğerinin saha doğrulayıcılarını güncellemeyi deneyin

Çocuklar, ben bir GridView var ve güncelleme başarılı oldu kullanıcı anlatmak için bir etkinlik (GridView1_RowUpdated) kullanmaya çalışıyorum Metin giriş alanları aktive edilir. Bilmek istediğim, bunu nasıl durdurabilirim?

C# dosyası:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class ProductsAdmin : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     lblUpdate.Text = ""; 
     lblErrorMessage.Text = ""; 
    } 
    protected void btnAdd_Click(object sender, EventArgs e) 
    { 
     lblErrorMessage.Text = ""; 
     SqlDataSource1.InsertParameters["ProductCode"].DefaultValue = txtProdNum.Text; 
     SqlDataSource1.InsertParameters["Name"].DefaultValue = txtName.Text; 
     SqlDataSource1.InsertParameters["Version"].DefaultValue = txtVersion.Text; 
     SqlDataSource1.InsertParameters["ReleaseDate"].DefaultValue = txtReleaseDate.Text; 

     try 
     { 
      SqlDataSource1.Insert(); 
     } 
     catch (Exception ex) 
     { 
      lblErrorMessage.Text = " A database connection error has occured: " + ex; 
     } 
    } 
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 
    protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e) 
    { 
     lblUpdate.Text = ""; 
     if (e.Exception != null) 
     { 
      lblUpdate.Text = "A database error has occured: " + e; 
     } 
     else if (e.AffectedRows == 0) 
     { 
      lblUpdate.Text = "Another user may have updated this row already." + "<br/> Please try again."; 
     } 
     else 
     { 
      lblUpdate.Text = "Deletion succesful!"; 
     } 

    } 
    protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e) 
    { 
     lblUpdate.Text = ""; 
     if(e.Exception != null) 
     { 
      lblUpdate.Text = "A database error has occured: " + e; 
      e.ExceptionHandled = true; 
      e.KeepInEditMode = true; 
     } 
     else if (e.AffectedRows == 0) 
     { 
      lblUpdate.Text = "Another user may have updated this row already. <br/> Please try again"; 
     } 
     else 
     { 
      lblUpdate.Text = "Edit succesful!"; 
     } 
    } 
} 

HTML:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ProductsAdmin.aspx.cs" Inherits="ProductsAdmin" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <style type="text/css"> 
     .auto-style1 { 
      width: 100%; 
     } 
     .auto-style2 { 
      width: 113px; 
     } 
     .auto-style3 { 
      width: 143px; 
     } 
    </style> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

     <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> 

    </div> 
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>" DeleteCommand="DELETE FROM [Products] WHERE [ProductCode] = @original_ProductCode AND [Name] = @original_Name AND [Version] = @original_Version AND [ReleaseDate] = @original_ReleaseDate" InsertCommand="INSERT INTO [Products] ([ProductCode], [Name], [Version], [ReleaseDate]) VALUES (@ProductCode, @Name, @Version, @ReleaseDate)" OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [Products]" UpdateCommand="UPDATE [Products] SET [Name] = @Name, [Version] = @Version, [ReleaseDate] = @ReleaseDate WHERE [ProductCode] = @original_ProductCode AND [Name] = @original_Name AND [Version] = @original_Version AND [ReleaseDate] = @original_ReleaseDate"> 
      <DeleteParameters> 
       <asp:Parameter Name="original_ProductCode" Type="String" /> 
       <asp:Parameter Name="original_Name" Type="String" /> 
       <asp:Parameter Name="original_Version" Type="Decimal" /> 
       <asp:Parameter Name="original_ReleaseDate" Type="DateTime" /> 
      </DeleteParameters> 
      <InsertParameters> 
       <asp:Parameter Name="ProductCode" Type="String" /> 
       <asp:Parameter Name="Name" Type="String" /> 
       <asp:Parameter Name="Version" Type="Decimal" /> 
       <asp:Parameter Name="ReleaseDate" Type="DateTime" /> 
      </InsertParameters> 
      <UpdateParameters> 
       <asp:Parameter Name="Name" Type="String" /> 
       <asp:Parameter Name="Version" Type="Decimal" /> 
       <asp:Parameter Name="ReleaseDate" Type="DateTime" /> 
       <asp:Parameter Name="original_ProductCode" Type="String" /> 
       <asp:Parameter Name="original_Name" Type="String" /> 
       <asp:Parameter Name="original_Version" Type="Decimal" /> 
       <asp:Parameter Name="original_ReleaseDate" Type="DateTime" /> 
      </UpdateParameters> 
     </asp:SqlDataSource> 
     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4" DataKeyNames="ProductCode" DataSourceID="SqlDataSource1" ForeColor="Black" GridLines="Horizontal" OnRowDeleted="GridView1_RowDeleted" OnRowUpdated="GridView1_RowUpdated" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"> 
      <Columns> 
       <asp:BoundField DataField="ProductCode" HeaderText="ProductCode" ReadOnly="True" SortExpression="ProductCode" /> 
       <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> 
       <asp:BoundField DataField="Version" HeaderText="Version" SortExpression="Version" /> 
       <asp:BoundField DataField="ReleaseDate" HeaderText="ReleaseDate" SortExpression="ReleaseDate" /> 
       <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> 
      </Columns> 
      <FooterStyle BackColor="#CCCC99" ForeColor="Black" /> 
      <HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" /> 
      <SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" /> 
      <SortedAscendingCellStyle BackColor="#F7F7F7" /> 
      <SortedAscendingHeaderStyle BackColor="#4B4B4B" /> 
      <SortedDescendingCellStyle BackColor="#E5E5E5" /> 
      <SortedDescendingHeaderStyle BackColor="#242121" /> 
     </asp:GridView> 
     <br /> 
     <asp:Label ID="lblUpdate" runat="server"></asp:Label> 
     <br /> 
     <br /> 
     <table class="auto-style1"> 
      <tr> 
       <td class="auto-style2"> 
        <asp:Label ID="lblProdNum" runat="server" Text="Product Code:"></asp:Label> 
       </td> 
       <td class="auto-style3"> 
        <asp:TextBox ID="txtProdNum" runat="server"></asp:TextBox> 
       </td> 
       <td> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtProdNum" Display="Dynamic" ErrorMessage="**Product code is a required field." ForeColor="Red"></asp:RequiredFieldValidator> 
       </td> 
      </tr> 
      <tr> 
       <td class="auto-style2"> 
        <asp:Label ID="lblName" runat="server" Text="Name:"></asp:Label> 
       </td> 
       <td class="auto-style3"> 
        <asp:TextBox ID="txtName" runat="server"></asp:TextBox> 
       </td> 
       <td> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtName" Display="Dynamic" ErrorMessage="**Name is a required field." ForeColor="Red"></asp:RequiredFieldValidator> 
       </td> 
      </tr> 
      <tr> 
       <td class="auto-style2"> 
        <asp:Label ID="lblVersion" runat="server" Text="Version:"></asp:Label> 
       </td> 
       <td class="auto-style3"> 
        <asp:TextBox ID="txtVersion" runat="server"></asp:TextBox> 
       </td> 
       <td> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtVersion" Display="Dynamic" ErrorMessage="**Version is a required field." ForeColor="Red"></asp:RequiredFieldValidator> 
       </td> 
      </tr> 
      <tr> 
       <td class="auto-style2"> 
        <asp:Label ID="lblReleaseDate" runat="server" Text="Release Date:"></asp:Label> 
       </td> 
       <td class="auto-style3"> 
        <asp:TextBox ID="txtReleaseDate" runat="server"></asp:TextBox> 
       </td> 
       <td> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtReleaseDate" Display="Dynamic" ErrorMessage="**Release date is a required field." ForeColor="Red"></asp:RequiredFieldValidator> 
       </td> 
      </tr> 
      <tr> 
       <td class="auto-style2">&nbsp;</td> 
       <td class="auto-style3">&nbsp;</td> 
       <td>&nbsp;</td> 
      </tr> 
      <tr> 
       <td class="auto-style2"> 
        <asp:Button ID="btnAdd" runat="server" OnClick="btnAdd_Click" Text="Add Product" /> 
       </td> 
       <td class="auto-style3"> 
        <asp:Label ID="lblErrorMessage" runat="server"></asp:Label> 
       </td> 
       <td> 
        &nbsp;</td> 
      </tr> 
     </table> 
    </form> 
</body> 
</html> 

cevap

1

Kullanım CausesValidation doğrulayıcılarını çalışmasını engellemek için:

<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" CausesValidation="False" />