Asp.net DropDownList, AutoPostBack, and ViewState

  • Thread starter Thread starter Corey
  • Start date Start date
C

Corey

I'm trying to finish off do an ASP.NET project where a DropDownList box is
used to access a Table.
Once you Make a selection on an item in the DropDownListBox, it updates a
DataView, and text boxes on the form get updated.

I'd like to do this without a submit button.

Shouldn't the DropDownList box PostBack?
Why does SelectedIndexChanged never get hit?
Does the answer lie within ViewState?

Any Info will help...

Thanks.
 
Corey,

Only the button has his autopostback standard set too true. For the other
controls you have to set that in the properties.

I hope this helps,

Cor
 
Thanks Cor.

I made the change to the text boxes. Unfortunately there's no change,
except now when I type in them i get an Javascript Error In Internet
Explorer which says

Error: Object expected

I think I know what is causing this. It's a parameter for a dataset, which
is missing.

But what i noticed with the DropDownList is when I changed it, I get a
javascript error for it too.
It says

Line: 1
Char: 1
Error: 'WebForm_PostBackOptions' is undefined
Code: 0

Does This Help at all? I've searched google and came up with very little.

Thanks.
 
Corey,
I made the change to the text boxes.

You said dropdownlist, that is the only place you should set the
autopostback to true in my opinion.

Cor
 
Yeah, I removed it from the text boxes before.

Any clues on my Javascript error?
 
Corey,

Can you show by a little piece how you did your code, it is ASPNET and for
that are three possibilities.

Cor
 
Here's My Code

<form id="Form1" method="post" runat="server">

<asp:textbox id=txtFirstName style="Z-INDEX: 101; LEFT: 33px; POSITION:
absolute; TOP: 56px" runat="server" Width="235px" Height="23px" Text='<%#
DataBinder.Eval(dvUsers1, "[0].FirstName", "{0}") %>'>

</asp:textbox><asp:textbox id=txtLastName style="Z-INDEX: 102; LEFT:
34px; POSITION: absolute; TOP: 99px" runat="server" Width="235px"
Height="24px" Text='<%# DataBinder.Eval(dvUsers1, "[0].LastName", "{0}")
%>'></asp:textbox><asp:datagrid id=DataGrid1 style="Z-INDEX: 103; LEFT:
323px; POSITION: absolute; TOP: -48px" runat="server" Width="386px"
Height="137px" Visible="False" DataMember="Users" DataKeyField="UserKey"
DataSource='<%# DataBinder.Eval(DsUsers1, "Tables[Users]") %>'>

</asp:datagrid><asp:dropdownlist id=DropDownList1 style="Z-INDEX: 104;
LEFT: 36px; POSITION: absolute; TOP: 20px" runat="server" Width="227px"
Height="27px" DataMember="Users" DataSource="<%# DsUsers1 %>"
DataValueField="UserKey" EnableViewState="True" AutoPostBack="True"
DataTextField="UserID">

</asp:dropdownlist><asp:datagrid id=DataGrid2 style="Z-INDEX: 105; LEFT:
34px; POSITION: absolute; TOP: 135px" runat="server"
DataMember="sp_RulesLookup" DataKeyField="ruledescr" DataSource="<%#
DsRulesLookup1 %>" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="ruledescr" SortExpression="ruledescr"
HeaderText="Rules"></asp:BoundColumn>
</Columns>
</asp:datagrid><asp:button id="Button1" style="Z-INDEX: 106; LEFT: 321px;
POSITION: absolute; TOP: 99px" runat="server" Width="250px" Height="28px"
Text="Save Changes"></asp:button><asp:button id="Button2" style="Z-INDEX:
107; LEFT: 324px; POSITION: absolute; TOP: 141px" runat="server"
Width="253px" Height="28px" Text="Button"></asp:button></form>
 
Corey,

This is the mainly RAD created part of your code.
I don't know if you have any VBcode so called code behind.

The problem with this is that I cannot simulate what you did, because it
depends on your evironment that you draged on your form.

However there must be as well a part wherin is that event from the
dropdownlist.

Cor
 
Why is the Xposted all over the place?

--
Regards,
Alvin Bruney
[Shameless Author Plug]
The Microsoft Office Web Components Black Book with .NET
available at www.lulu.com/owc
_________________________
 
Any time i try to change the DropDownList I get a javascript error which
says "Error: 'WebForm_PostBackOptions' is undefined"
How can I restore this?

VB Code is as follows.


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

'Put user code to initialize the page here

If Not IsPostBack Then

SqlDAUsers.Fill(DsUsers1)

DropDownList1.DataBind()

' DataGrid1.DataBind()

' dvUsers1.RowFilter = "Userkey = " & Me.ViewState("DropDownList1") '&
DsUsers1.Users.UserKeyColumn.ToString()

txtFirstName.DataBind()

txtLastName.DataBind()

SqlDARulesLookup.SelectCommand.Parameters.Item(1).Value =
DropDownList1.SelectedItem.Value

SqlDARulesLookup.Fill(DsRulesLookup1)

DataGrid2.DataBind()

End If

' Response.Write("Selected - " + DropDownList1.SelectedItem.Value)

' Response.Write("Uber Select - " & DropDownList1.SelectedIndex)

End Sub

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
DropDownList1.SelectedIndexChanged



' txtFirstName.Text = DsUsers1.Users.FirstNameColumn.ToString

' txtLastName.Text = DsUsers1.Users.LastNameColumn.ToString

dvUsers1.RowFilter = "Userkey = " & DsUsers1.Users.UserKeyColumn.ToString()

txtFirstName.DataBind()

txtLastName.DataBind()

Response.Write("SelectedIndex!")

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Dim strSQLQuery As String

strSQLQuery = "UPDATE Users " _

& "SET FirstName = '" & Replace(txtFirstName.Text, "'", "''") & "', " _

& "LastName = '" & Replace(txtLastName.Text, "'", "''") & "' " _

& "WHERE UserKey = " & DropDownList1.SelectedItem.Value & ";"

'Response.Write(strSQLQuery)

SqlSaveCommand.CommandText = strSQLQuery

SqlUsers.Open()

SqlSaveCommand.ExecuteNonQuery()

SqlUsers.Close()

'update datasets?

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click

' Define Crystal Reports variables

Dim crReportDocument As ReportDocument

Dim crExportOptions As ExportOptions

Dim crDiskFileDestinationOptions As DiskFileDestinationOptions

Dim Fname As String

' The following code can be placed directly after the call to

' InitializeComponent() in the form's constructor, or inside of

' a Button_Click event where the button is used by the client to

' get a printable copy of the report.

crReportDocument = New ReportDocument()

' The following line of code loads the sample report "Chart.rpt" that
installs

' with Visual Studio .NET

crReportDocument.Load("C:\Inetpub\wwwroot\WebApplication3\CrystalReport2.rpt")

Fname = "C:\inetpub\wwwroot\WebApplication3\" & Session.SessionID.ToString &
".pdf"

crDiskFileDestinationOptions = New DiskFileDestinationOptions()

crDiskFileDestinationOptions.DiskFileName = Fname

crExportOptions = crReportDocument.ExportOptions

With crExportOptions

..DestinationOptions = crDiskFileDestinationOptions

..ExportDestinationType = ExportDestinationType.DiskFile

..ExportFormatType = ExportFormatType.PortableDocFormat

End With

crReportDocument.Refresh()

crReportDocument.Export()

' The following code writes the pdf file to the Client's browser.

Response.ClearContent()

Response.ClearHeaders()

Response.ContentType = "application/pdf"

Response.WriteFile(Fname)

Response.Flush()

Response.Close()

'delete the exported file from disk

System.IO.File.Delete(Fname)

End Sub

End Class
 
Visual Studio must have put them in.

Alvin Bruney said:
Why is the Xposted all over the place?

--
Regards,
Alvin Bruney
[Shameless Author Plug]
The Microsoft Office Web Components Black Book with .NET
available at www.lulu.com/owc
_________________________


Corey said:
I'm trying to finish off do an ASP.NET project where a DropDownList box
is used to access a Table.
Once you Make a selection on an item in the DropDownListBox, it updates a
DataView, and text boxes on the form get updated.

I'd like to do this without a submit button.

Shouldn't the DropDownList box PostBack?
Why does SelectedIndexChanged never get hit?
Does the answer lie within ViewState?

Any Info will help...

Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top