User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the ASP.NET section within the Web Development category of DaniWeb, a massive community of 428,474 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 4,236 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our ASP.NET advertiser: Lunarpages ASP Web Hosting

VB: Datatable either not saving data or data is being reset

Join Date: May 2005
Posts: 3
Reputation: Soteriologist is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
Soteriologist Soteriologist is offline Offline
Newbie Poster

Re: VB: Datatable either not saving data or data is being reset

  #2  
May 2nd, 2008
Someone from another forum was suspicious that it was the dynamic controls causing the problem.

But I've worked a lot with dynamic controls and everything with how I built them seemed to be working fine.

He gave a good suggestion though and so I've rebuilt the page with static controls to do some testing. Sure enough, even with static controls I'm still experiencing a problem with the datatable not saving.

Anyone think it might be that it's because my datatable is not attached to a datasource, like xml, access, sql server?

I think I'm going to try doing a write to xml and then bind to that xml file temporarily. I really didn't want to waste disk space and hdd read/write time for such a small transaction though. I would really prefer for it to stay in memory for the small time that it's needed.

Here's the aspx:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Testing_Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <div id="Div1_div" runat="server" visible="false">
            <asp:Button ID="Div1_btn" runat="server" Text="Div 2" /><br />
            <asp:GridView ID="Page1_gv" runat="server">
                <AlternatingRowStyle BackColor="#F5F5F5" />
                <SelectedRowStyle BackColor="#FFFF00" />
            </asp:GridView>
            DDL Control Index:<asp:TextBox ID="DDLControlIndex_txtbx" runat="server"></asp:TextBox>
            DDL Item Index:<asp:TextBox ID="DDLItemIndex_txtbx" runat="server"></asp:TextBox>
            DDL Item Value:<asp:TextBox ID="DDLItemValue_txtbx" runat="server"></asp:TextBox><br />
            <asp:DropDownList ID="DDL0_ddl" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DBHeader_ddl_SelectedIndexChanged">
                <asp:ListItem Text="" Value=""></asp:ListItem>
                <asp:ListItem Text="One" Value="One"></asp:ListItem>
                <asp:ListItem Text="2" Value="2"></asp:ListItem>
                <asp:ListItem Text="Three" Value="Three"></asp:ListItem>
                <asp:ListItem Text="4" Value="4"></asp:ListItem>
                <asp:ListItem Text="Five" Value="Five"></asp:ListItem>
            </asp:DropDownList>
            <asp:DropDownList ID="DDL1_ddl" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DBHeader_ddl_SelectedIndexChanged">
                <asp:ListItem Text="" Value=""></asp:ListItem>
                <asp:ListItem Text="One" Value="One"></asp:ListItem>
                <asp:ListItem Text="2" Value="2"></asp:ListItem>
                <asp:ListItem Text="Three" Value="Three"></asp:ListItem>
                <asp:ListItem Text="4" Value="4"></asp:ListItem>
                <asp:ListItem Text="Five" Value="Five"></asp:ListItem>
            </asp:DropDownList>
        </div>
        <div id="Div2_div" runat="server" visible="false">
            <asp:Button ID="Div2_btn" runat="server" Text="Div 1" /><br />
            <asp:GridView ID="Div2_gv" runat="server">
                <AlternatingRowStyle BackColor="#F5F5F5" />
                <SelectedRowStyle BackColor="#FFFF00" />
            </asp:GridView>
        </div>
    </div>
    </form>
</body>
</html>

And here's the VB.Net:

Imports System.Data
Imports System.Data.SqlClient
Partial Class Testing_Default2
    Inherits System.Web.UI.Page
    Protected Numbers_dt As DataTable = New DataTable("Numbers")
    Protected Number_nr As DataRow
    Protected Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.PreInit
        With Numbers_dt
            .Columns.Add("i_DDLItemIndex", System.Type.GetType("System.Int32"))
            .Columns.Add("u_DDLItemValue", System.Type.GetType("System.String"))
            Number_nr = .NewRow()
            Number_nr("i_DDLItemIndex") = 0
            Number_nr("u_DDLItemValue") = ""
            .Rows.Add(Number_nr)
            Number_nr = .NewRow()
            Number_nr("i_DDLItemIndex") = 0
            Number_nr("u_DDLItemValue") = ""
            .Rows.Add(Number_nr)
        End With
    End Sub
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        If Not (Page.IsPostBack) Then
            Div1_div.Visible = True
        End If
    End Sub
#Region " Div 1 "
    Protected Sub Div1_div_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Div1_div.Init
        Page1_gv.DataSource = Numbers_dt
        Page1_gv.DataBind()
    End Sub
    Protected Sub DBHeader_ddl_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim ddl As DropDownList = DirectCast(sender, DropDownList)
        Dim selectedIndex, rowNumber As Integer
        Dim selectedValue, selectedText As String
        With ddl
            selectedIndex = .SelectedIndex
            selectedValue = .SelectedValue
            selectedText = .SelectedItem.Text
            rowNumber = CInt(.ClientID.ToString().Replace("DDL", "").Replace("_ddl", ""))
        End With
        Numbers_dt.Rows(rowNumber).BeginEdit()
        Numbers_dt.Rows(rowNumber).Item("i_DDLItemIndex") = selectedIndex
        Numbers_dt.Rows(rowNumber).Item("u_DDLItemValue") = selectedValue
        Numbers_dt.Rows(rowNumber).EndEdit()
        Numbers_dt.Rows(rowNumber).AcceptChanges()
        DDLControlIndex_txtbx.Text = rowNumber.ToString()
        DDLItemIndex_txtbx.Text = Numbers_dt.Rows(rowNumber).Item("i_DDLItemIndex")
        DDLItemValue_txtbx.Text = Numbers_dt.Rows(rowNumber).Item("u_DDLItemValue")
        Page1_gv.DataBind()
    End Sub
    Protected Sub Page1_btn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Div1_btn.Click
        Div1_div.Visible = False
        Div2_div.Visible = True
    End Sub
#End Region
#Region " Div 2 "
    Protected Sub Page2_div_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Div2_div.Load
        Div2_gv.DataSource = Numbers_dt
        Div2_gv.DataBind()
    End Sub
    Protected Sub Div2_btn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Div2_btn.Click
        Div1_div.Visible = True
        Div2_div.Visible = False
    End Sub
#End Region
End Class
Last edited by Soteriologist : May 2nd, 2008 at 5:37 pm.
Reply With Quote  
All times are GMT -4. The time now is 9:24 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC