I have a GridView, and when I click Edit, it is firing the OnRowEditing event ,and I am setting the edititem index, but it keeps displaying the ItemTemplate fields instead of the EditItemTemplat e. I have done this before, but I can't figure out why it is ignoring the EditItem Template. I have my code below. Basically, I am storing a "work" table in a session variable, adn I bind that table to the grid, so I don't want to use a datasource.
<%@ Page Language="VB" AutoEventWireup ="false" CodeFile="test. aspx.vb" Inherits="test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt d">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitl ed Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="gvSOLines" runat="server" AutoGenerateCol umns="false" DataKeyNames="P OLineNo"
OnRowEditing="g vSOLines_RowEdi ting"
OnRowUpdating=" gvSOLines_RowUp dating" OnRowCancelingE dit="gvSOLines_ RowCancelingEdi t"
>
<Columns>
<asp:CommandFie ld ButtonType="Lin k" ShowEditButton= "true" ShowCancelButto n="true" ShowDeleteButto n="true" SelectText="Att ributes" />
<asp:TemplateFi eld HeaderText="Lin e">
<ItemTemplate >
<asp:Label id="lblPOLineNo " Runat="Server" Text='<%# Eval("POLineNo" ) %>'/>
</ItemTemplate>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Cus tomer Item">
<ItemTemplate >
<asp:Label id="lblCustItem " Runat="Server" Text='<%# Eval("CustItem" ) %>'/>
</ItemTemplate>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Qua ntity">
<EditItemTempla te>
<asp:TextBox ID="txtQuantity " runat="server" Text='<%# Bind("Quantity" ) %>' />
</EditItemTemplat e>
<ItemTemplate >
<asp:Label ID="lblQuantity " runat="server" Text='<%# Bind("Quantity" ) %>' />
</ItemTemplate>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="U/M">
<ItemTemplate >
<asp:Label ID="lblUnitMeas ID" runat="server" Text='<%#Bind(" UnitMeasID") %>' />
<asp:Label ID="lblUOM" runat="server" Text='<%#Bind(" UMKey") %>' visible="false"/>
<asp:Label ID="lblItemID" runat="server" Text='<%#Bind(" ItemID") %>' visible="false"/>
</ItemTemplate>
<EditItemTempla te>
<asp:DropDownLi st ID="ddlUOM" DataTextField=" UnitMeasID" DataValueField= "UnitMeasKe y" runat="server" />
<asp:Label ID="lblUOM" runat="server" Text='<%#Bind(" UMKey") %>' visible="false"/>
<asp:Label ID="lblItemID" runat="server" Text='<%#Bind(" ItemID") %>' visible="false"/>
</EditItemTemplat e>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Uni t Price">
<ItemTemplate >
<asp:Label id="lblPrice" Runat="Server" Text='<%# Eval("Price") %>'/>
</ItemTemplate>
<EditItemTempla te>
<asp:Label id="lblPrice" Runat="Server" Text='<%# Eval("Price") %>'/>
</EditItemTemplat e>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Ext d Amt">
<ItemTemplate >
<asp:Label id="lblExtdAmt " Runat="Server" Text='<%# Eval("ExtdAmt") %>'/>
</ItemTemplate>
<EditItemTempla te>
<asp:Label id="lblExtdAmt " Runat="Server" Text='<%# Eval("ExtdAmt") %>'/>
</EditItemTemplat e>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Req Date">
<ItemTemplate >
<asp:Label id="lblRequestD ate" Runat="Server" Text='<%# Eval("RequestDa te") %>'/>
</ItemTemplate>
<EditItemTempla te>
<asp:TextBox id="txtRequestD ate" Runat="Server" Text='<%# Eval("RequestDa te") %>' Width="50px"/>
</EditItemTemplat e>
</asp:TemplateFie ld>
</Columns>
</asp:GridView>
</form>
</body>
</html>
Imports System.Data
Partial Class test
Inherits System.Web.UI.P age
Sub gvSOLines_RowCa ncelingEdit(ByV al sender As Object, ByVal e As GridViewCancelE ditEventArgs)
gvSOLines.EditI ndex = -1
Call BindLines()
End Sub
Sub gvSOLines_RowEd iting(ByVal sender As Object, ByVal e As GridViewEditEve ntArgs)
gvSOLines.Selec tedIndex = e.NewEditIndex
Call BindLines()
End Sub
Sub gvSOLines_RowUp dating(ByVal sender As Object, ByVal e As GridViewUpdateE ventArgs)
'Dim row As GridViewRow = gvSOLines.Rows( e.RowIndex)
Dim rowIndex As Integer = e.RowIndex
End Sub
Sub BindLines()
'Bind order lines to gridview
Try
Dim dtSOLines As DataTable = Session("SOLine s")
gvSOLines.DataS ource = dtSOLines
gvSOLines.DataB ind()
Catch ex As Exception
End Try
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArg s) Handles Me.Load
If Not Page.IsPostBack Then
Dim dtSOLines As DataTable = New DataTable("Item ")
dtSOLines.Colum ns.Add("ItemID" , GetType(String) )
dtSOLines.Colum ns.Add("Price", GetType(Decimal ))
dtSOLines.Colum ns.Add("Quantit y", GetType(Decimal ))
dtSOLines.Colum ns.Add("Descrip tion", GetType(String) )
dtSOLines.Colum ns.Add("POLineN o", GetType(Integer ))
dtSOLines.Colum ns.Add("UnitMea sID", GetType(String) )
dtSOLines.Colum ns.Add("Request Date", GetType(String) )
dtSOLines.Colum ns.Add("TaxClas sID", GetType(String) )
dtSOLines.Colum ns.Add("UserFld 1", GetType(String) )
dtSOLines.Colum ns.Add("UserFld 2", GetType(String) )
dtSOLines.Colum ns.Add("CustIte m", GetType(String) )
dtSOLines.Colum ns.Add("UMKey", GetType(Decimal ))
dtSOLines.Colum ns.Add("ExtdAmt ", GetType(Decimal ))
dtSOLines.Colum ns.Add("ItemKey ", GetType(Integer ))
'Attributes
dtSOLines.Colum ns.Add("WidthE" , GetType(Decimal ))
dtSOLines.Colum ns.Add("WidthM" , GetType(Decimal ))
dtSOLines.Colum ns.Add("Core", GetType(Integer ))
dtSOLines.Colum ns.Add("Diamete rE", GetType(Decimal ))
dtSOLines.Colum ns.Add("Diamete rM", GetType(Decimal ))
dtSOLines.Colum ns.Add("CustPar tNo", GetType(String) )
dtSOLines.Colum ns.Add("AppLeve l", GetType(String) )
dtSOLines.Colum ns.Add("Sides", GetType(Integer ))
dtSOLines.Colum ns.Add("Orienta tion", GetType(String) )
dtSOLines.Colum ns.Add("Notes", GetType(String) )
Dim row As DataRow = dtSOLines.NewRo w()
row("POLineNo") = 1
row("ItemID") = "ITEM1"
row("Descriptio n") = "Item Description"
row("CustItem") = "CUSTITEM"
row("Quantity") = 5
row("UMKey") = 1
row("UnitMeasID ") = "Each"
row("Price") = 100
row("ExtdAmt") = 500
row("RequestDat e") = "03/07/2008"
row("TaxClassID ") = ""
row("UserFld1") = ""
row("UserFld2") = ""
row("ItemKey") = 1
'Attributes
row("WidthE") = 0
row("WidthM") = 0
row("Core") = 0
row("DiameterE" ) = 0
row("DiameterM" ) = 0
row("CustPartNo ") = ""
row("AppLevel") = ""
row("Sides") = 0
row("Orientatio n") = ""
row("Notes") = ""
'Save Attributes for this line
'Call SaveLineAttrib( iPOLine)
dtSOLines.Rows. Add(row)
Session("SOLine s") = dtSOLines
BindLines()
End If
End Sub
End Class
<%@ Page Language="VB" AutoEventWireup ="false" CodeFile="test. aspx.vb" Inherits="test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt d">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitl ed Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="gvSOLines" runat="server" AutoGenerateCol umns="false" DataKeyNames="P OLineNo"
OnRowEditing="g vSOLines_RowEdi ting"
OnRowUpdating=" gvSOLines_RowUp dating" OnRowCancelingE dit="gvSOLines_ RowCancelingEdi t"
>
<Columns>
<asp:CommandFie ld ButtonType="Lin k" ShowEditButton= "true" ShowCancelButto n="true" ShowDeleteButto n="true" SelectText="Att ributes" />
<asp:TemplateFi eld HeaderText="Lin e">
<ItemTemplate >
<asp:Label id="lblPOLineNo " Runat="Server" Text='<%# Eval("POLineNo" ) %>'/>
</ItemTemplate>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Cus tomer Item">
<ItemTemplate >
<asp:Label id="lblCustItem " Runat="Server" Text='<%# Eval("CustItem" ) %>'/>
</ItemTemplate>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Qua ntity">
<EditItemTempla te>
<asp:TextBox ID="txtQuantity " runat="server" Text='<%# Bind("Quantity" ) %>' />
</EditItemTemplat e>
<ItemTemplate >
<asp:Label ID="lblQuantity " runat="server" Text='<%# Bind("Quantity" ) %>' />
</ItemTemplate>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="U/M">
<ItemTemplate >
<asp:Label ID="lblUnitMeas ID" runat="server" Text='<%#Bind(" UnitMeasID") %>' />
<asp:Label ID="lblUOM" runat="server" Text='<%#Bind(" UMKey") %>' visible="false"/>
<asp:Label ID="lblItemID" runat="server" Text='<%#Bind(" ItemID") %>' visible="false"/>
</ItemTemplate>
<EditItemTempla te>
<asp:DropDownLi st ID="ddlUOM" DataTextField=" UnitMeasID" DataValueField= "UnitMeasKe y" runat="server" />
<asp:Label ID="lblUOM" runat="server" Text='<%#Bind(" UMKey") %>' visible="false"/>
<asp:Label ID="lblItemID" runat="server" Text='<%#Bind(" ItemID") %>' visible="false"/>
</EditItemTemplat e>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Uni t Price">
<ItemTemplate >
<asp:Label id="lblPrice" Runat="Server" Text='<%# Eval("Price") %>'/>
</ItemTemplate>
<EditItemTempla te>
<asp:Label id="lblPrice" Runat="Server" Text='<%# Eval("Price") %>'/>
</EditItemTemplat e>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Ext d Amt">
<ItemTemplate >
<asp:Label id="lblExtdAmt " Runat="Server" Text='<%# Eval("ExtdAmt") %>'/>
</ItemTemplate>
<EditItemTempla te>
<asp:Label id="lblExtdAmt " Runat="Server" Text='<%# Eval("ExtdAmt") %>'/>
</EditItemTemplat e>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Req Date">
<ItemTemplate >
<asp:Label id="lblRequestD ate" Runat="Server" Text='<%# Eval("RequestDa te") %>'/>
</ItemTemplate>
<EditItemTempla te>
<asp:TextBox id="txtRequestD ate" Runat="Server" Text='<%# Eval("RequestDa te") %>' Width="50px"/>
</EditItemTemplat e>
</asp:TemplateFie ld>
</Columns>
</asp:GridView>
</form>
</body>
</html>
Imports System.Data
Partial Class test
Inherits System.Web.UI.P age
Sub gvSOLines_RowCa ncelingEdit(ByV al sender As Object, ByVal e As GridViewCancelE ditEventArgs)
gvSOLines.EditI ndex = -1
Call BindLines()
End Sub
Sub gvSOLines_RowEd iting(ByVal sender As Object, ByVal e As GridViewEditEve ntArgs)
gvSOLines.Selec tedIndex = e.NewEditIndex
Call BindLines()
End Sub
Sub gvSOLines_RowUp dating(ByVal sender As Object, ByVal e As GridViewUpdateE ventArgs)
'Dim row As GridViewRow = gvSOLines.Rows( e.RowIndex)
Dim rowIndex As Integer = e.RowIndex
End Sub
Sub BindLines()
'Bind order lines to gridview
Try
Dim dtSOLines As DataTable = Session("SOLine s")
gvSOLines.DataS ource = dtSOLines
gvSOLines.DataB ind()
Catch ex As Exception
End Try
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArg s) Handles Me.Load
If Not Page.IsPostBack Then
Dim dtSOLines As DataTable = New DataTable("Item ")
dtSOLines.Colum ns.Add("ItemID" , GetType(String) )
dtSOLines.Colum ns.Add("Price", GetType(Decimal ))
dtSOLines.Colum ns.Add("Quantit y", GetType(Decimal ))
dtSOLines.Colum ns.Add("Descrip tion", GetType(String) )
dtSOLines.Colum ns.Add("POLineN o", GetType(Integer ))
dtSOLines.Colum ns.Add("UnitMea sID", GetType(String) )
dtSOLines.Colum ns.Add("Request Date", GetType(String) )
dtSOLines.Colum ns.Add("TaxClas sID", GetType(String) )
dtSOLines.Colum ns.Add("UserFld 1", GetType(String) )
dtSOLines.Colum ns.Add("UserFld 2", GetType(String) )
dtSOLines.Colum ns.Add("CustIte m", GetType(String) )
dtSOLines.Colum ns.Add("UMKey", GetType(Decimal ))
dtSOLines.Colum ns.Add("ExtdAmt ", GetType(Decimal ))
dtSOLines.Colum ns.Add("ItemKey ", GetType(Integer ))
'Attributes
dtSOLines.Colum ns.Add("WidthE" , GetType(Decimal ))
dtSOLines.Colum ns.Add("WidthM" , GetType(Decimal ))
dtSOLines.Colum ns.Add("Core", GetType(Integer ))
dtSOLines.Colum ns.Add("Diamete rE", GetType(Decimal ))
dtSOLines.Colum ns.Add("Diamete rM", GetType(Decimal ))
dtSOLines.Colum ns.Add("CustPar tNo", GetType(String) )
dtSOLines.Colum ns.Add("AppLeve l", GetType(String) )
dtSOLines.Colum ns.Add("Sides", GetType(Integer ))
dtSOLines.Colum ns.Add("Orienta tion", GetType(String) )
dtSOLines.Colum ns.Add("Notes", GetType(String) )
Dim row As DataRow = dtSOLines.NewRo w()
row("POLineNo") = 1
row("ItemID") = "ITEM1"
row("Descriptio n") = "Item Description"
row("CustItem") = "CUSTITEM"
row("Quantity") = 5
row("UMKey") = 1
row("UnitMeasID ") = "Each"
row("Price") = 100
row("ExtdAmt") = 500
row("RequestDat e") = "03/07/2008"
row("TaxClassID ") = ""
row("UserFld1") = ""
row("UserFld2") = ""
row("ItemKey") = 1
'Attributes
row("WidthE") = 0
row("WidthM") = 0
row("Core") = 0
row("DiameterE" ) = 0
row("DiameterM" ) = 0
row("CustPartNo ") = ""
row("AppLevel") = ""
row("Sides") = 0
row("Orientatio n") = ""
row("Notes") = ""
'Save Attributes for this line
'Call SaveLineAttrib( iPOLine)
dtSOLines.Rows. Add(row)
Session("SOLine s") = dtSOLines
BindLines()
End If
End Sub
End Class