Link to home
Start Free TrialLog in
Avatar of Wildone63
Wildone63

asked on

Finding a Control in formview insert template

Hi,
I am using VS-2008 VB and MS-SQL 2005.

I have an ASPX page with a Formview and a dropdown list on it. My Goal is to populate the dropdown list from a table in a database.

This works IF it is not in a formview.

Imports System.Data.SqlClient

Partial Public Class Test
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        'This will populate the Drop Down List with the store numbers...
        Dim connectionString As String = "Data Source=iwcrex1;Initial Catalog=IWCR75COMP01;Persist Security Info=True;User ID=webuser;Password=password"
        Dim dbcon As New SqlConnection(connectionString)
        dbcon.open()
        Dim dbcmd As New sqlcommand
        dbcmd.CommandText = "select * from arcadr where custno = 'LES-01' order by case when isnumeric(cshipno)=1 then cshipno*1 else 0 end"

        dbcmd.Connection = dbcon
        DropDownList1.DataTextField = "cshipno"
        DropDownList1.DataValueField = "id_col"
        DropDownList1.DataSource = dbcmd.ExecuteReader()
        DropDownList1.DataBind()
        DropDownList1.Items.Insert(0, New ListItem("", "NULL"))
        dbcmd.Dispose()
        dbcon.Dispose()

    End Sub

End Class

But. If I try it in a formview I can get it to work.

Here is what I am trying, Can someone help me with this Please.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Label1.Text = System.DateTime.Now.ToLongDateString

        'This will populate the Drop Down List with the store numbers...
        Dim connectionString As String = "Data Source=iwcrex1;Initial Catalog=IWCR75COMP01;Persist Security Info=True;User ID=webuser;Password=password"
        Dim dbcon As New SqlConnection(connectionString)
        dbcon.Open()
        Dim dbcmd As New SqlCommand
        dbcmd.CommandText = "select * from arcadr where custno = 'LES-01' order by case when isnumeric(cshipno)=1 then cshipno*1 else 0 end"

        dbcmd.Connection = dbcon
        CType(FormView1.FindControl("DropDownList2").datatextfield = "cshipno"
        DropDownList1.DataValueField = "id_col"
        DropDownList1.DataSource = dbcmd.ExecuteReader()
        DropDownList1.DataBind()
        DropDownList1.Items.Insert(0, New ListItem("", "NULL"))
        dbcmd.Dispose()
        dbcon.Dispose()

    End Sub
ASKER CERTIFIED SOLUTION
Avatar of AliSyed
AliSyed
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Wildone63
Wildone63

ASKER

I am in the Insert Mode...
I tried what you said but now I get this error...

Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.


Here is my HTML

        <InsertItemTemplate>
            <div class="style2">
                <br />
                <table class="style3">
                    <tr>
                        <td class="style7" height="23">
                            <b>Store:</b></td>
                        <td style="text-align: left" height="23">
                            <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True"
                                onselectedindexchanged="DropDownList2_SelectedIndexChanged2"
                                SelectedValue='<%# Bind("Store") %>'>

                                </asp:DropDownList>
                        </td>
                    </tr>