Hi,
I am not able to read selected dropdown values in the gridview_rowupdating event.
it will read always which was bind the last read values.
what is the problem over here..?
<asp:TemplateField HeaderText="From Period" HeaderStyle-HorizontalAlign="Left">
<edititemtemplate>
<asp:DropDownList ID="cmbFrm" runat="server" Style="width: 100px;"
>
<asp:ListItem Text="Please Select" Value="">
</edititemtemplate>
<itemtemplate>
<asp:Label ID="lblFrm" runat="server" Text='<%# Eval("FromPeriod") %>'>
</itemtemplate>
<HeaderStyle HorizontalAlign="Left" />
<asp:TemplateField HeaderText="To Period" HeaderStyle-HorizontalAlign="Left">
<edititemtemplate>
<asp:DropDownList ID="cmbTo" runat="server" Style="width: 100px;"
>
<asp:ListItem Text="Please Select" Value="">
</edititemtemplate>
<itemtemplate>
<asp:Label ID="lblTo" runat="server" Text='<%# Eval("ToPeriod") %>'>
</itemtemplate>
<HeaderStyle HorizontalAlign="Left" />
<asp:TemplateField HeaderText="Edit" ShowHeader="False" HeaderStyle-HorizontalAlign="Left">
<edititemtemplate>
<asp:LinkButton ID="lbkUpdate" runat="server" CausesValidation="True" CommandName="Update" Text="Update">
<asp:LinkButton ID="lnkCancel" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel">
</edititemtemplate>
<itemtemplate>
<asp:LinkButton ID="lnkEdit" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit">
</itemtemplate>
<HeaderStyle HorizontalAlign="Left" />
<asp:TemplateField HeaderText="Delete" ItemStyle-HorizontalAlign="Center">
<itemtemplate>
<asp:ImageButton ID="btnDelete" runat="server" CommandName="Delete" Height="20"
ImageUrl="~/images/btn_Delete.gif"
CommandArgument='<%# Eval("emp_number") %>'
Width="20" ShowDeleteButton="True" ShowHeader="True"/>
</itemtemplate>
<itemstyle horizontalalign="Center" width="2%" />
<%-- <asp:CommandField HeaderText="Delete" ShowDeleteButton="True" ShowHeader="True" /> --%>
<asp:SqlDataSource ID="dsOtherDept1" runat="server"
ConnectionString="<%$ConnectionStrings:MPP%>"
SelectCommand="Select distinct V.emp_number as emp_number,emp_name+' '+emp_initial as name,emp_designation,Manpower_Division_ID,FromPeriod, ToPeriod from idpeapp.dbo.view_employee V inner join OtherDeptEmp O on V.emp_number = O.emp_number order by name">
Protected Sub grdDeptEmp_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles grdDeptEmp.RowUpdating
Dim lblEmpNo As Label = DirectCast(grdDeptEmp.Rows(e.RowIndex).FindControl("lblEmpNo"), Label)
Dim cmbFrm As DropDownList = DirectCast(grdDeptEmp.Rows(e.RowIndex).FindControl("cmbFrm"), DropDownList)
Dim cmbTo As DropDownList = DirectCast(grdDeptEmp.Rows(e.RowIndex).FindControl("cmbTo"), DropDownList)
'cmbFrm.SelectedIndex = cmbFrm.Items.IndexOf(cmbFrm.Items.FindByValue(DataBinder.Eval(e.Row.DataItem, "FromPeriod")))
If cmbFrm IsNot Nothing And cmbTo IsNot Nothing Then
Conn.Open()
StrQry = ""
StrQry = "update OtherDeptEmp set FromPeriod='" & cmbFrm.SelectedValue & "',ToPeriod='" & cmbTo.SelectedValue & "' where emp_number='" & lblEmpNo.Text & "'"
Cmd.Connection = Conn
Cmd.CommandText = StrQry
Cmd.ExecuteNonQuery()
Conn.Close()
End If
grdDeptEmp.EditIndex = -1
FillGrid()
End Sub
Public Sub FillGrid()
Conn.Open()
StrQry = ""
StrQry = "Select distinct V.emp_number as emp_number,emp_name+' '+emp_initial as name,emp_designation,Manpower_Division_ID,FromPeriod, ToPeriod from idpeapp.dbo.view_employee V inner join OtherDeptEmp O on V.emp_number = O.emp_number order by name"
SQLDA = New SqlDataAdapter(StrQry, Conn)
dttable = New DataTable
SQLDA.Fill(dttable)
If dttable.Rows.Count > 0 Then
grdDeptEmp.DataSource = dttable
grdDeptEmp.DataBind()
End If
Conn.Close()
End Sub
Protected Sub grdDeptEmp_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdDeptEmp.RowDataBound
Dim sno As New Label
Dim SrNo As Integer
If e.Row.RowType = DataControlRowType.DataRow Then
SrNo = (grdDeptEmp.PageIndex + 1) * 10 - 9
sno = e.Row.FindControl("Sno")
sno.Text = e.Row.RowIndex + SrNo
sno.DataBind()
End If
If e.Row.RowType = DataControlRowType.DataRow Then
Dim cmbFrm As DropDownList = DirectCast(e.Row.FindControl("cmbFrm"), DropDownList)
If cmbFrm IsNot Nothing Then
cmbFrm.DataSource = dsOtherDept1
cmbFrm.DataTextField = "FromPeriod"
cmbFrm.DataValueField = "FromPeriod"
cmbFrm.DataBind()
cmbFrm.SelectedIndex = cmbFrm.Items.IndexOf(cmbFrm.Items.FindByValue(DataBinder.Eval(e.Row.DataItem, "FromPeriod")))
End If
End If
If e.Row.RowType = DataControlRowType.DataRow Then
Dim cmbTo As DropDownList = DirectCast(e.Row.FindControl("cmbTo"), DropDownList)
If cmbTo IsNot Nothing Then
cmbTo.DataSource = dsOtherDept1
cmbTo.DataTextField = "ToPeriod"
cmbTo.DataValueField = "ToPeriod"
cmbTo.DataBind()
cmbTo.SelectedIndex = cmbTo.Items.IndexOf(cmbTo.Items.FindByValue(DataBinder.Eval(e.Row.DataItem, "ToPeriod")))
End If
End If
'If e.Row.RowType = DataControlRowType.DataRow Then
' Dim l As ImageButton = DirectCast(e.Row.FindControl("btnDelete"), ImageButton)
' l.Attributes.Add("onclick", "javascript:return " & "confirm('Are you sure you want to delete this record " & DataBinder.Eval(e.Row.DataItem, "emp_number") & "')")
'End If
End Sub
Protected Sub grdDeptEmp_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles grdDeptEmp.RowCommand
'Dim StrQry As String
'Dim emp_number As Integer = Convert.ToInt32(e.CommandArgument)
If e.CommandName = "Delete" Then
'get the EmpNumber of the clicked row
Dim emp_number As Integer = Convert.ToInt32(e.CommandArgument)
'Delete the record
'dsOtherDept1.DeleteCommand = "delete from OtherDeptEmp where emp_number =" & emp_number
'dsOtherDept1.DataBind()
If emp_number.ToString IsNot Nothing Then
Conn.Open()
StrQry = ""
StrQry = "delete from OtherDeptEmp where emp_number='" & emp_number & "'"
Cmd.Connection = Conn
Cmd.CommandText = StrQry
Cmd.ExecuteNonQuery()
Conn.Close()
End If
End If
FillGrid()
End Sub