i have a simplest code..and its working fine if I run it as just Dotnet simple webpage.
but when i use this code in VisualWebPart it react in other way..
the problem is...
I m making CRUD operation on GridView when I am clicking on Update
button it should call the GridView1_RowUpdating Event but it is calling GridView1_RowEditing what should be called in clicking of Edit Button.
Dont know what is going wrong...pls suggest
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VisualWebPart1UserControl.ascx.cs" Inherits="VWP_Test_GridUpdateEvent.VisualWebPart1.VisualWebPart1UserControl" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AutoGenerateEditButton="True"
OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowEditing="GridView1_RowEditing"
OnRowUpdating="GridView1_RowUpdating">
<Columns>
<asp:TemplateField HeaderText="Column 1">
<ItemTemplate>
<%#Eval("one") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtOne" runat="server" Text='<%# Eval("one") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Column 2">
<ItemTemplate>
<%#Eval("two") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtTwo" runat="server" Text='<%# Eval("two") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
//-----------------------------------------------------------
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data;
namespace VWP_Test_GridUpdateEvent.VisualWebPart1
{
public partial class VisualWebPart1UserControl : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("one");
dt.Columns.Add("two");
DataRow dRow = dt.NewRow();
dRow[0] = "One-One";
dRow[1] = "One-Two";
dt.Rows.Add(dRow);
DataRow dRow1 = dt.NewRow();
dRow1[0] = "Two-One";
dRow1[1] = "Two-Two";
dt.Rows.Add(dRow1);
dt.AcceptChanges();
ViewState["DataTable"] = dt;
BindGrid();
}
}
private void BindGrid()
{
GridView1.DataSource = (DataTable)ViewState["DataTable"];
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindGrid();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int aa = GridView1.EditIndex;
string strOne = ((TextBox)GridView1.Rows[GridView1.EditIndex].Cells[1].Controls[1]).Text;
string strTwo = ((TextBox)GridView1.Rows[GridView1.EditIndex].Cells[2].Controls[1]).Text;
GridView1.EditIndex = -1;
BindGrid();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
BindGrid();
}
}
}
Here is the markup for the GridView
<asp:GridView ID="gvListData" runat="server" Width="100%" AutoGenerateColumns="false"
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true"
OnRowUpdating="gvListData_RowUpdating"
OnRowEditing="gvListData_RowEditing"
OnRowCancelingEdit="gvListData_RowCancelingEdit" OnRowDeleting="gvListData_RowDeleting" OnRowDataBound="gvListData_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Title">
<ItemTemplate>
<asp:Label ID="lblTitle" runat="server" BackColor="Transparent" ReadOnly="true" BorderStyle="None" Text='<%# Eval("title") %>' />
<asp:HiddenField ID="hdnID" runat="server" Value='<%# Eval("ID") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtTitleEdit" runat="server" Text='<%# Eval("title") %>' />
<asp:HiddenField ID="hdnIDEdit" runat="server" Value='<%# Eval("ID") %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Salary">
<ItemTemplate>
<asp:TextBox ID="txtSalary" runat="server" BackColor="Transparent" ReadOnly="true" BorderStyle="None" Text='<%# Eval("salary") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtSalaryEdit" runat="server" Text='<%# Eval("salary") %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Designation">
<ItemTemplate>
<asp:TextBox ID="txtDesignation" runat="server" BackColor="Transparent" ReadOnly="true" BorderStyle="None" Text='<%# Eval("designation") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDesignationEdit" runat="server" Text='<%# Eval("designation") %>' />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>