• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 605
  • Last Modified:

How do I find a control in Formview Insert Mode

Hi,
I am using VS-2008 VB and MS-SQL 2005. I am using the Insert Item Template to do this.

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.

When I try this I get the error....

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


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Label1.Text = System.DateTime.Now.ToLongDateString
        Dim ddl2 As DropDownList = FormView1.FindControl("Dropdownlist2")

        '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
        ddl2.DataTextField = "cshipno"
        ddl2.DataValueField = "id_col"
        ddl2.DataSource = dbcmd.ExecuteReader()
        ddl2.DataBind()
        ddl2.Items.Insert(0, New ListItem("", "NULL"))
        dbcmd.Dispose()
        dbcon.Dispose()

    End Sub
0
Wildone63
Asked:
Wildone63
1 Solution
 
carlnorrbomCommented:
Hi,

From reading the error message I assume you have specified a "SelectedValue" for the dropdown declaratively like:
        <asp:DropDownList ID="DropDownList2" runat="server" SelectedValue='<%# Bind("SomeDataField") %>' />

Open in new window


If so that is what is causing your error. It is most likely caused by the field name not matching or a null value coming through or something like that.

/Carl.
0
 
mr_nadgerCommented:

try
        dbcmd.Connection = dbcon
        ctype(FormView1.FindControl("Dropdownlist2"),dropdwn).datasource= dbcmd.ExecuteReader()
        ctype(FormView1.FindControl("Dropdownlist2"),dropdwn).DataTextField = "cshipno"
        ctype(FormView1.FindControl("Dropdownlist2"),dropdwn).DataValueField = "id_col"
        ctype(FormView1.FindControl("Dropdownlist2"),dropdwn).DataBind()

this should force the code to find the right control on the page, if not could you post the html as well please
0
 
aibusinesssolutionsCommented:

Dim ddl2 As DropDownList = FormView1.FindControl("DropDownList2")

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

Open in new window

0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now