hi sir,
can u help me on this..i already manage to insert textbox values to gridview.but when i want to edit the value of gridview row (pass back to textbox) it didnt work.it always get the 0 row index.please help me..it is urgent.i already try from yesterday but failed.
my code behind:
Private Sub FirstGridViewRow()
Dim dt As New DataTable()
Dim dr As DataRow = Nothing
dt.Columns.Add(New DataColumn("Bil", GetType(String)))
dt.Columns.Add(New DataColumn("Wheel Record No", GetType(String)))
dt.Columns.Add(New DataColumn("SMH", GetType(String)))
dt.Columns.Add(New DataColumn("Tindakan", GetType(String)))
dt.Columns.Add(New DataColumn("Jenis Tayar", GetType(String)))
'dt.Columns.Add(New DataColumn("Kuantiti", GetType(String)))
dr = dt.NewRow()
'dr("RowNumber") = i + 1
dr("Wheel Record No") = String.Empty
dr("SMH") = String.Empty
dr("Tindakan") = String.Empty
dr("Jenis Tayar") = String.Empty
'dr("Kuantiti") = String.Empty
dt.Rows.Add(dr)
grvDO.DataSource = dt
grvDO.DataBind()
End Sub
Protected Sub tambah_Click(ByVal sender As Object, ByVal e As EventArgs)
If ViewState("CurrentTable") IsNot Nothing Then
Dim dt As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
Dim count As Integer = dt.Rows.Count
BindGrid(count)
Else
BindGrid(1)
End If
btnSave.Visible = True
smhref.Text = String.Empty
End Sub
Protected Sub BindGrid(ByVal rowcount As Integer)
Dim i As Integer = 0
Dim dt As New DataTable()
Dim dr As DataRow
dt.Columns.Add(New DataColumn("Bil", GetType(String)))
dt.Columns.Add(New System.Data.DataColumn("Wheel Record No", GetType(String)))
dt.Columns.Add(New System.Data.DataColumn("SMH", GetType(String)))
dt.Columns.Add(New System.Data.DataColumn("Tindakan", GetType(String)))
dt.Columns.Add(New System.Data.DataColumn("Jenis Tayar", GetType(String)))
'dt.Columns.Add(New System.Data.DataColumn("Kuantiti", GetType(String)))
If ViewState("CurrentTable") IsNot Nothing Then
For j As Integer = 0 To rowcount + 1
dt = DirectCast(ViewState("CurrentTable"), DataTable)
If dt.Rows.Count > 0 Then
dr = dt.NewRow()
dr(0) = dt.Rows(0)(0).ToString()
End If
Next
dr = dt.NewRow()
dr(0) = i + 1
dr(1) = wheelno.Text
dr(2) = smhref.Text
If ddl_tindakan.SelectedValue = "Pilih" Then
dr(3) = ""
Else
dr(3) = ddl_tindakan.SelectedValue
End If
If ddl_jenisroda.SelectedValue = "Pilih" Then
dr(4) = ""
Else
dr(4) = ddl_jenisroda.SelectedValue
End If
'dr(5) = kuantiti.Text
dt.Rows.Add(dr)
Else
dr = dt.NewRow()
dr(0) = i + 1
dr(1) = wheelno.Text
dr(2) = smhref.Text
dr(3) = ddl_tindakan.SelectedValue
dr(4) = ddl_jenisroda.SelectedValue
'dr(5) = kuantiti.Text
dt.Rows.Add(dr)
End If
' If ViewState has a data then use the value as the DataSource
If ViewState("CurrentTable") IsNot Nothing Then
grvDO.DataSource = DirectCast(ViewState("CurrentTable"), DataTable)
grvDO.DataBind()
Else
' Bind GridView with the initial data assocaited in the DataTable
grvDO.DataSource = dt
grvDO.DataBind()
End If
' Store the DataTable in ViewState to retain the values
ViewState("CurrentTable") = dt
grvDO.Visible = True
End Sub
Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As EventArgs) 'edit
Dim row As GridViewRow = CType(CType(sender, ImageButton).Parent.Parent, GridViewRow)
Dim mySelectedRow As GridViewRow = row
Label1.Text = row.Cells(0).Text
Dim wheel As String = CType(mySelectedRow.FindControl("wheel"), Label).Text.ToString() 'DirectCast(grvDO.Rows(row).Cells(1).FindControl("wheel"), Label).Text.ToString()
wheelno.Text = wheel
Dim smh As String = CType(mySelectedRow.FindControl("smh"), Label).Text.ToString()
smhref.Text = smh
Dim tindakan As String = CType(mySelectedRow.FindControl("tindakan"), Label).Text.ToString()
ddl_tindakan.SelectedValue = tindakan
Dim axletype As String = CType(mySelectedRow.FindControl("axletype"), Label).Text.ToString()
ddl_jenisroda.SelectedValue = axletype
Button1.Visible = True
tambah.Visible = False
Label2.Text = row.Cells(0).Text
End Sub
Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As EventArgs) 'edit
Dim row As GridViewRow = CType(CType(sender, ImageButton).Parent.Parent, GridViewRow)
Dim mySelectedRow As GridViewRow = row
Label1.Text = row.Cells(0).Text
Dim wheel As String = CType(mySelectedRow.FindControl("wheel"), Label).Text.ToString() 'DirectCast(grvDO.Rows(row).Cells(1).FindControl("wheel"), Label).Text.ToString()
wheelno.Text = wheel
Dim smh As String = CType(mySelectedRow.FindControl("smh"), Label).Text.ToString()
smhref.Text = smh
Dim tindakan As String = CType(mySelectedRow.FindControl("tindakan"), Label).Text.ToString()
ddl_tindakan.SelectedValue = tindakan
Dim axletype As String = CType(mySelectedRow.FindControl("axletype"), Label).Text.ToString()
ddl_jenisroda.SelectedValue = axletype
Button1.Visible = True
tambah.Visible = False
Label2.Text = row.Cells(0).Text
End Sub
Protected Sub UpdateRecord(ByVal sender As Object, ByVal e As EventArgs)
Dim dr As DataRow
Dim rowIndex As Integer = 0 'Integer.Parse(Label1.Text)
Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
Dim columnIndex As Integer = 0
For i As Integer = 0 To dtCurrentTable.Rows.Count
Dim wheel As Label = DirectCast(grvDO.Rows(rowIndex).Cells(1).FindControl("wheel"), Label)
wheel.Text = wheelno.Text
Dim smh As Label = DirectCast(grvDO.Rows(rowIndex).Cells(2).FindControl("smh"), Label)
smh.Text = smhref.Text
Dim tindakan As Label = DirectCast(grvDO.Rows(rowIndex).Cells(3).FindControl("tindakan"), Label)
tindakan.Text = ddl_tindakan.SelectedValue
Dim axletype As Label = DirectCast(grvDO.Rows(rowIndex).Cells(4).FindControl("axletype"), Label)
axletype.Text = ddl_jenisroda.SelectedValue
'Dim tindakan As String = CType(mySelectedRow.FindControl("tindakan"), Label).Text.ToString()
'ddl_tindakan.SelectedValue = tindakan
Next
Button1.Visible = False
tambah.Visible = True
End Sub
aspx code:
<asp:Panel ID="Panel1" runat="server" Width="100%">
<table rules="rows" >
<tr>
<td style="width:70px">
Date
</td>
<td style="width:150px">
<asp:TextBox ID="tarikh" runat="server" Width="100"></asp:TextBox><asp:CalendarExtender ID="CalendarExtender1"
runat="server" Format="dd/MM/yyyy" TargetControlID="tarikh">
</asp:CalendarExtender>
</td>
<td style="width:100px">
Contract No.
</td>
<td style="width:150px">
KTMB <asp:TextBox ID="contractno" runat="server" Width="70px"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width:70px">
Tindakan
</td>
<td style="width:150px">
<asp:DropDownList ID="ddl_tindakan" runat="server">
<asp:ListItem>Pilih</asp:ListItem>
<asp:ListItem>Redisc</asp:ListItem>
<asp:ListItem>Reprofile</asp:ListItem>
<asp:ListItem>Bearing Service</asp:ListItem>
<asp:ListItem>Other</asp:ListItem>
</asp:DropDownList>
</td>
<td style="width:100px">
Jenis Tayar
</td>
<td style="width:150px">
<asp:DropDownList ID="ddl_jenisroda" runat="server">
<asp:ListItem>Pilih</asp:ListItem>
<asp:ListItem>16T</asp:ListItem>
<asp:ListItem>14T</asp:ListItem>
<asp:ListItem>Koyo Large</asp:ListItem>
<asp:ListItem>KOROS</asp:ListItem>
<asp:ListItem>PGC</asp:ListItem>
<asp:ListItem>GH</asp:ListItem>
<asp:ListItem>81 class_motor</asp:ListItem>
<asp:ListItem>81 class_trailer</asp:ListItem>
<asp:ListItem>82 class_motor</asp:ListItem>
<asp:ListItem>82 class_trailer</asp:ListItem>
<asp:ListItem>83 class_motor</asp:ListItem>
<asp:ListItem>83 class_trailer</asp:ListItem>
<asp:ListItem>23 class</asp:ListItem>
<asp:ListItem>24 class</asp:ListItem>
<asp:ListItem>25 class</asp:ListItem>
<asp:ListItem>26 class</asp:ListItem>
<asp:ListItem>29 class</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td style="width:100px">
Wheel Record No
</td>
<td>
<asp:TextBox ID="wheelno" runat="server"></asp:TextBox>
</td>
<td style="width:100px">
SMH Ref. No.
</td>
<td>
<asp:TextBox ID="smhref" runat="server"></asp:TextBox>
</td>
</tr>
</table>
<br />
<br />
<asp:Button ID="tambah" runat="server" Text="Tambah" OnClick="tambah_Click" />
<asp:Button ID="Button1" runat="server" Text="Kemaskini" Visible="False" OnClick="UpdateRecord"/></center>
<asp:Label ID="authorizedby" runat="server" Text="" Visible="False"></asp:Label>
<asp:Label ID="dono" runat="server" Text="" Visible="False"></asp:Label>
<asp:Label ID="Label1" runat="server" Text="" Visible="False"></asp:Label>
<asp:Label ID="status" runat="server" Text="" Visible="False"></asp:Label>
<asp:Label ID="kuantiti" runat="server" Text="" Visible="False"></asp:Label>
<asp:Label ID="Label2" runat="server" Text="" Visible="False"></asp:Label>
<br />
<br />
<asp:GridView ID="grvDO" runat="server" ItemStyle-Width="30px" AutoGenerateColumns="False"
Width="70%" BorderColor="#486070" HeaderStyle-BackColor="#D8E8F0"
AlternatingRowStyle-BackColor="White" BackColor="White" FooterStyle-BackColor="#D8E8F0"
FooterStyle-BorderColor="#486070" ShowFooter="True">
<Columns>
<asp:TemplateField HeaderText="Bil" ItemStyle-Width="20px">
<ItemTemplate>
<asp:Label ID="bil" runat="server" Text=<%# Container.DataItemIndex+1 %>></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Wheel Record No" ItemStyle-Width="50px">
<ItemTemplate>
<asp:Label ID="wheel" runat="server" Text='<%#Eval("Wheel Record No") %>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SMH" ItemStyle-Width="50px">
<ItemTemplate>
<asp:Label ID="smh" runat="server" Text='<%#Eval("SMH") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Tindakan" ItemStyle-Width="50px">
<ItemTemplate>
<asp:Label ID="tindakan" runat="server" Text='<%#Eval("tindakan") %>'>></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Jenis Tayar" ItemStyle-Width="50px">
<ItemTemplate>
<asp:Label ID="axletype" runat="server" Text='<%#Eval("Jenis Tayar") %>'>></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10px">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" ImageAlign="AbsMiddle"
ImageUrl="~/Library/img/24/pencil.png" OnClick="ImageButton1_Click"
ToolTip="Click to Edit" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10px">
<ItemTemplate>
<asp:ImageButton ID="ImageButton2" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/Library/img/24/bin_closed.png"
ToolTip="Click to Delete" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<asp:Button ID="btnSave" runat="server" Text="Hantar" OnClick="btnSave_Click" />
</asp:Panel>