C# - Changing Dropdownlist Selection Causes Full Postback?
May 6, 2010
I have a search page with a TextBox that allows someone to type in a search term and press enter. (Which fires TextChanged). I have a DropDownList that specifies the kind of search that will be performed. It is defined in the markup as follows:
<asp:DropDownList ID="lstSearchType" runat="server" AutoPostBack="false">
<asp:ListItem Value="0">Last, First</asp:ListItem>
<asp:ListItem Value="1">Last</asp:ListItem>
<asp:ListItem Value="2">First</asp:ListItem>
<asp:ListItem Value="3">Liberty ID</asp:ListItem>
<asp:ListItem Value="4">E-mail</asp:ListItem>
<asp:ListItem Value="5">Telephone</asp:ListItem>
<asp:ListItem Value="6">Birthday (exact m/d/yyyy)</asp:ListItem>
<asp:ListItem Value="7">SSN (exact ###-##-####)</asp:ListItem>
<asp:ListItem Value="8">Address</asp:ListItem>
</asp:DropDownList>
As you can see, AutoPostBack is set to false, and there is no event hookup.
Pressing enter fires the OnTextChanged event for the TextBox, which performs a search and updates a GridView in an UpdatePanel. This UpdatePanel has its UpdateMode set to conditional and has one trigger: the TextChanged event of the search TextBox.
It's very simple.
And it works beautifully, almost.
Whenever I change the search type, the very next search does a full postback. All subsequent searches do partial postbacks (as desired) unless I change the search type again.
There is one exception to this rule: if I load the page and immediately change the search type, it doesn't do a full postback. So the first change of the DropDownList before any postback (full or partial) does not trigger a full postback.
Full Disclosure: I'm doing a lot of JavaScript to change the appearance of the gridview during async requests. I don't detail it here because it seems unrelated. This problem only occurs when a DropDownList with no JavaScript wired up is changed.
View 1 Replies
Similar Messages:
Aug 6, 2013
I have two dropdownlists on my page that are related to one another, and are built dynamically. I did not write the original code, but I believe it is using AJAX so the whole page doesn't postback when the ddl selection changes. The first ddl is Status and the second is ContractType. Here is the code for the event handler:
Code:
protected void Status_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
DropDownList status = (DropDownList)sender;
string selectedStatusId = status.SelectedItem.Value;
[Code] ....
Here is some of my debugging info:
? view.Count
4
? view.Table.Rows.Count
20
? contractTypeDropDown.SelectedValue
[Code] .....
I commented out the event handler since this snapshot, just to see what would happen, but when I was hitting it you can see what ex.Message was. I don't understand why it says the SelectedValue is invalid when I see the selected value is "E " and that is one of the four items in the ddl.
View 1 Replies
Mar 18, 2010
I have an ASP.NET page using the AJAX library. There is a dropdownlist inside an UpdatePanel, which on index changing is supposed to update a different UpdatePanel to modify a grid control.But after the page first comes up, and you adjust the ddl, the entire page postbacks, followed by a (correct) partial postback. After this one time, every other usage of the ddl performs correctly, trigger partial postbacks.
Both the panel and the ddl are being added from code. The UP is Conditional updates and ChildrenAsTriggers = true. The dropdownlist is AutoPostBack true and has an event set up on SelectedIndexChanged.So what is going on? I've tried adjusting every setting I can think of and still the page completely refreshes once, then works fine after that.
View 1 Replies
Oct 19, 2010
I have been having some trouble with dropdown lists reverting back to selecting the initial item in the list after a postback once a selection has been made from the dropdown list. I have read up on this and found out that a "if not ispostback then" is required.This works fine when I add in all the items in the dropdown list manually like:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
ddl1.Items.Add("Select...") [code]....
However, I have over 250 items and so it is far more efficient for me to load then in by using part of a multidimensional array which is created from a text file - Definitive database.txt. I have been using the following code to do so:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'loads the definitive database array[code]...
This loads all the items into the dropdown list perfectly, but now every time a selection is made, it reverts back to the inital item on postback even though i have included the "if not ispostback then" part.
View 3 Replies
Jun 23, 2010
I'm trying to put a updateprogress into a webpage where selection from the dropdownlist causes postback. Works out well except that on the first postback, the gif image shows on the leftside rather than on the center. On succeeding postback, it will show on the centre where I intend it to be. Below is my code:
[Code]....
View 2 Replies
Aug 20, 2010
Is something like this possible?
Dim iCounter as Integer
Dim iQuantity as Integer = 10
Protected Sub btnFoo_Click Handles btnFoo Yadda
For i as Integer = iCounter to iQuantity - 1
//do something with AsyncPostBackTrigger until iCounter = iQuantity - 1
//then trigger a full postback
Next
End Sub
I am new to the concept and feel like there must be something really easy that I am missing.
View 2 Replies
Jul 6, 2010
I implemented the AsyncFileUpload control on a web page. This web page requires uploaded files to appear in a gridview. The gridview contains the following columns: "File Name", "Confidential" Check Box, and a "Remove" button to remove the uploaded file.
Since the AsyncFileUpload postback does not do a full page postback, I need to "force" a postback on the OnClientUploadComplete event of the AsyncFileUpload control in order to render the gridview after uploading a file. In the OnClientUploadCompleteevent, I use javascript to call __doPostBack. In this postback, I only bind my gridview and display the file information (I don't re-save the file).
The problem: On the AsyncFileUpload's first "partial" postback, the file is successfully uploaded, as expected. On the second postback that I force with __doPostBack, the file is re-uploaded. You can verify this by using Google Chrome, which displays the upload progress. The behaviour is as follows: After selecting the file, the progress increments from 0% to 100% and the file is uploaded. After this, the __doPostBack executes, and you can see the upload progress increment again from 0% to 100%.
How can I make sure the Gridview is properly populated, but that the file is not uploaded twice?
I attached a sample solution which contains the issue:
[URL]
View 1 Replies
Sep 2, 2012
i have 2 DDL in my page that when users select item from ddldistric1 item in ddlcity1 will change these are my code
protected void DDLcity1_SelectedIndexChanged(object sender, EventArgs e)
{
BindDistrictC();
}
private void BindDistrictC()
[code]...
View 1 Replies
Jan 8, 2013
I am having two dropdownlist in my project,one dropdownlist for empid, another dropdownlist for month, if the user select the empid, the values are retrieved in the textbox.
In the second dropdownlist, if the user select the month in the dropdownlist it will display the leave details, its all working fine, if the user again select the first dropdownlist that means empid, I want to show the second dropdownlist as select month, how can do this.....
View 1 Replies
Aug 12, 2012
i have 3 drop down list in my page
1-ddlzone1
2-ddldistrict1
3-ddlstore1
this is ddlzone1 code
protected void DDLzone1_SelectedIndexChanged(object sender, EventArgs e) {
DDLstore1.Items.Clear();
DDLstore1.Items.Add(new ListItem("select center", ""));
DDLstore1.AppendDataBoundItems = true;
SqlCommand _cmd = new SqlCommand("selectcenter", _cn);
[CODE].....
View 1 Replies
Aug 1, 2013
I have a dropdownlist on my page with dates such as 1/1/2013, 2/1/2013, etc.
Then there is a second ddl.
If the date in ddl #1 is before 1/10/2013 I want to enable ddl #2.
If the date in ddl #1 is on or after 1/10/2013 I want to either disable ddl #2 or hide it (whichever's easier).
Disabling ddl #2 based on the selected date is a new requirement so I am enhancing the existing code. Obviously I want to do this without a postback, but I don't know what is the best way. I am trying to understand what an AsyncPostBackTrigger is because this is the existing code:
Code:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:dropdownlist id="EffectiveDateDropDown" runat="server"></asp:dropdownlist>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="QuoteType"
EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
It wants to do something when the selected index is changed? This exists in the code-behind, but I set a breakpoint and never hit it:
Code:
protected void QuoteType_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
}
catch (Exception err)
{
this.PublishError(err);
}
}
View 2 Replies
Feb 4, 2010
On my .aspx page i want to be able to show and hide certain panels depending on user selections (radiobuttonlists).
For example in my aspx page i have;
[Code]...
But when I try to run the code I get;
"Object reference not set to an instance of an object" on this line If RadioButtonList1.SelectedItem.Equals(3) Then
View 2 Replies
Dec 29, 2010
I have 2 dropdownlist, one is to dropdown department, and another dropdown staffnames. the secong dropdownlist will based on the selection of department as each department has different staffs i have 2 tables department and staff in my database , in my department table i have departmentid as PK and departmentname, in my staff table i have staffname and departmentid as FK. So my ques is how am i going to populate staffname in the dropdownlist according to the selection of department.
View 9 Replies
Jan 19, 2010
I have one table which contains branch codes(primary key), Branch name and bank name columns. I have 3 dropdownlist boxes. the first dropdownlist is for the branch codes. When i select the a branch code i need the second dropdownlist box to populate with the appropriate branch name and the third dropdownlist box to populate the bank name at the same time.
Is it possible to have one table like mine and acheive this, if so how do i go about doing this?
I did read up on this but only came across ones with 3 tables.
I am using Visual Basic to do this.
View 7 Replies
Mar 3, 2011
Is there a way that we can change the color (which is defaulted to blue) when the items in the list box are selected? If so can you provide me a sample for it?
View 1 Replies
Jan 16, 2010
i have upgrade my website from framework 2.0 to 3.5 but i have problem with ajax .I get full postback when i click a linkbutton inside update panel .
View 14 Replies
Mar 24, 2011
I'm having few UpdatePanels on my master page. And then, I have RadTreeViewcontrol on the page, that should cause partial postback each time node is clicked. Everything works fine there. Since I'm using the same tree on some other pages, I moved this functionality to UserControl. Stuff I've done before, so no problem. Moved some code to ascx, created some events. Everything always worked for me well. But not now. RadTreeView is nested inside UserControl, and this control on master page with update panels, see below:
<asp:Panel ID="pnlContentWrapper" runat="server" CssClass="ContentWrapper">
<div id="HeaderBreadCrumb">
<asp:ContentPlaceHolder ID="HeaderBreadCrumbContent" runat="server" />
</div>
<div id="HeaderMenu">
<asp:UpdatePanel ID="upnlTreeMenu" runat="server">
<ContentTemplate>
<asp:ContentPlaceHolder ID="HeaderMenuContent" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="treeProductTree" />
</Triggers>
</asp:UpdatePanel>
</div>
<div id="TreeDiv">
<fp:ProductTree ID="treeProductTree" runat="server" />
</div>
<asp:Panel ID="ContentDiv" ClientIDMode="Static" runat="server">
<asp:UpdatePanel ID="upnlTreeContent" runat="server">
<ContentTemplate>
<asp:ContentPlaceHolder ID="TreePageContent" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="treeProductTree" />
</Triggers>
</asp:UpdatePanel>
</asp:Panel>
</asp:Panel>
And the user control is really simple:
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="ProductTree.ascx.vb"
Inherits="ProductTree" %>
<div>
<telerik:RadTreeView ID="treeProductTree" ClientIDMode="Static" runat="server" EnableDragAndDrop="false"
SkinID="CustomSkin" CssClass="MasterProductTree" DataFieldID="NodeId" DataFieldParentID="NodeParentId"
DataTextField="NodeName" DataValueField="NodeId" />
</div>
And some code behind:
Imports Telerik.Web.UI
Public Class ProductTree
Inherits System.Web.UI.UserControl
Public Event NodeExpand As EventHandler(Of ProductTreeNodeExpandEventArgs)
Public Event SelectedNodeChange As EventHandler
Protected Sub ProductTree_NodeExpand(ByVal sender As Object, ByVal e As RadTreeNodeEventArgs) _
Handles treeProductTree.NodeExpand
Dim nodeId As Integer = CInt(e.Node.Value)
Dim evetArgs = New ProductTreeNodeExpandEventArgs(nodeId)
RaiseEvent NodeExpand(Me, evetArgs)
//'some logic
End Sub
Protected Sub ProductTree_OnNodeClick(ByVal sender As Object, ByVal e As RadTreeNodeEventArgs) _
Handles treeProductTree.NodeClick
RaiseEvent SelectedNodeChange(Me, New System.EventArgs())
End Sub
End Class
What I don't know is: why is this causing full postback instead of partial? I suspect that it may have something to do with raising my for SelectedNodeChange, but I don't know how to deal with it other way. I need to let other components know, that node selection changed. How can I improve this to make it work with UpdatePanels?
View 1 Replies
Nov 30, 2010
I have run into what seems to be a very famous problem: My updatepanel fires a full postback instead of a async postback. The normal solution is to give all controls you add dynamically an ID, which I have done, but I still get a full postback instead of my async postback. Here's the code:
HTML:
<asp:UpdatePanel ID="ItemsUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
<Triggers>
</Triggers>
<ContentTemplate>
<asp:ListView ID="PlayerItems" runat="server" GroupItemCount="5"
onitemdatabound="PlayerItems_ItemDataBound">
<LayoutTemplate>
... Listview stuff ...
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>
The interesting part is the C# code behind (method PlayerItems_ItemDataBound), which is like the following:
ImageButton imgBtn = new ImageButton();
imgBtn.ID = "itemBtn";
imgBtn.Width = Unit.Pixel(30);
imgBtn.ImageUrl = "~/Images/Game/Items/" + myItem.ItemImageUrl;
ContextMenu menu = new ContextMenu();
menu.BoundControls.Add(imgBtn);
menu.ItemCommand += new CommandEventHandler(menu_ItemCommand);
menu.AutoHide = true;
menu.RolloverColor = Color.Gray;
menu.ID = "MenuMenu";
Panel panel = (Panel)(e.Item.FindControl("ItemPanel"));
panel.Controls.Add(imgBtn);
panel.Controls.Add(menu);
AsyncPostBackTrigger trig = new AsyncPostBackTrigger();
trig.ControlID = menu.UniqueID;
trig.EventName = "ItemCommand";
ItemsUpdatePanel.Triggers.Add(trig);
So, I actually add an AsyncPostBackTrigger to the menu, so the ItemCommand event should be registered. What happends when I click an item in this contextmenu, is a full postback happends. I have been trying to play with the ChildrenAsTriggers property without help.
View 2 Replies
Jan 13, 2010
I'd like to programmatically force a full page postback to occur after an event is fired by one of the child controls. I can't add any triggers to make this work so it will have to be done via code.
View 2 Replies
Jan 7, 2010
I have an UpdatePanel with a button that, when clicked, calls a WebService. I attached an UpdateProgress to it that shows a "loading" gif while it runs. Everything works fine, but I need a full PostBack once the operation is complete because I'm using my company's custom template that displays an info message and enables a "Next" button upon completion.I've had partial success with the endRequestHandler but I'm not sure what to put in my function to force a full postback once the UpdatePanel has run its course. I'm getting into the endRequestHandler function but I have been unable to successfully get a full PostBack.Here is my current code (including several attempts), the bottom part being the focus:
[Code]....
View 2 Replies
Jan 29, 2010
I have never done jquery and need some assistance/advice on something I am trying to do.I basically have an ASP.NET MVC Application.
What I want to do is, asynchronously be able to do a partial postback when a button is pressed.It's a simple application that should add items and retrieve existing items from an IEnumberable<T> collection.
so, when a button is pressed, it should be able to add the item into the collection on the ASP.NET site without having to do a full postback.
View 8 Replies
Apr 19, 2010
I have basically the following structure set up :
[Code]....
I am aware that a FileUpload requires a full page postback. I read the article http://www.4guysfromrolla.com/articles/090209-1.aspx[^]I tried to install a PostBackTrigger programmatically to get a full postback only on the ImageButton1 control. All other postbacks must be partial. (GridView sorting, paging, ...)In code behind I do :
[Code]....
The above code does not seem to install a full postback only for the ImageButton1, so the file upload fails. How can I make this work ?
View 6 Replies
Jan 19, 2011
I have a quite strange situation where I have the following code:
<asp:Timer ID="GameClock" runat="server" Interval="5000" Enabled="true"
ontick="GameClock_Tick">
</asp:Timer>
<asp:UpdatePanel ID="ItemsUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
<Triggers>
NOTE THE TRIGGER IS COMMENTED OUT
<%--<asp:AsyncPostBackTrigger ControlID="GameClock" EventName="Tick" />--%>
</Triggers>
<ContentTemplate>
<asp:ListView ID="PlayerItems" runat="server" GroupItemCount="7"
onitemdatabound="PlayerItems_ItemDataBound">
<LayoutTemplate>
<table border="1" cellpadding="2" cellspacing="0" runat="server" id="tblProducts">
<tr runat="server" id="groupPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<td id="Td1" runat="server" style="vertical-align:top; text-align:left; height:100%;">
<div>
<div id="category" runat="server">
<asp:Panel ID="ItemPanel" runat="server">
</asp:Panel>
</div>
</div>
</td>
</ItemTemplate>
<GroupTemplate>
<tr runat="server" id="productRow">
<td runat="server" id="itemPlaceholder"></td>
</tr>
</GroupTemplate>
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>
This gives a quite strange result: Every 5s my whole page gives a full postback. When I comment in (activate) the asyncpostbacktrigger, the updatepanel does not give a full postback. In the PlayerItems_ItemDataBound I have the following code (which, I do think, do not matter):
protected void PlayerItems_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
ListViewDataItem dataItem = e.Item as ListViewDataItem;
if (dataItem != null)
{
BaseItem myItem = dataItem.DataItem as BaseItem;
Panel itemPanel = new Panel();
Literal firstLiteral = new Literal();
firstLiteral.Text += "<div id='smoothmenu1' class='ddsmoothmenu'>";
firstLiteral.Text += "<ul>";
firstLiteral.Text += "<li><img src='Images/Game/Items/" + myItem.ItemImageUrl + "' />";
firstLiteral.Text += "<ul>";
// Add all events bound to item into contextmenu
itemPanel.Controls.Add(firstLiteral);
foreach (Delegate del in myItem.Actions.Items)
{
Literal firstItLit = new Literal();
firstItLit.Text += "<li>";
itemPanel.Controls.Add(firstItLit);
MethodInfo methodInfo = del.Method;
string commandName = myItem.ItemId + "|" + methodInfo.Name;
LinkButton btn = new LinkButton();
btn.Text = methodInfo.Name;
btn.Click += new EventHandler(btn_Click);
btn.CommandName = commandName;
itemPanel.Controls.Add(btn);
Literal secondItLit = new Literal();
secondItLit.Text += "</li>";
itemPanel.Controls.Add(secondItLit);
}
Literal btnLiteral = new Literal();
btnLiteral.Text += "</ul>";
btnLiteral.Text += "</li>";
btnLiteral.Text += "</ul>";
btnLiteral.Text += "</div>";
itemPanel.Controls.Add(btnLiteral);
Panel panel = (Panel)(e.Item.FindControl("ItemPanel"));
panel.Controls.Add(itemPanel);
}
}
}
When I create a NEW updatepanel, ItemsUpdatePanel1, it does not fire a full postback without the timer. I can even start copying items from ItemsUpdatePanel to ItemsUpdatePanel1, and suddenly the full postbacks happen. I tried 2 seperate times, and they started happening at different times.
View 2 Replies
May 13, 2010
I have got the following gridview with a UpdatePanel and approve and save button in each row. How do I create a full postback if approve button is click and asyncPostback if save button is click.
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="btnApprove" />
</Triggers>
<ContentTemplate>
<asp:GridView ID="gvApproval" runat="server" CssClass="gridview" BorderColor="#E5E5E5"
Width="98%" AutoGenerateColumns="False" DataKeyNames="NewProcessId" OnRowCommand="gvApproval_RowCommand"
OnRowDataBound="gvApproval_RowDataBound" OnRowEditing="gvApproval_RowEditing">
<Columns>
<asp:TemplateField Visible="False">
<ItemTemplate>
<asp:Label ID="lblApprovalId" runat="server" Text='<%# Bind("ApprovalId") %>' Width="1px"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Comment">
<ItemStyle Width="80%" Wrap="True" />
<ItemTemplate>
<asp:Label ID="lblComment" runat="server" Text='<%# Eval("Comment").ToString().Replace("
", "<br />") %>'></asp:Label>
<asp:TextBox ID="txtApprovalComment" runat="server" CssClass="textMessageBox" TextMode="MultiLine"
Width="98%" Visible="false"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvApprovalComment" runat="server" ControlToValidate="txtApprovalComment"
Display="Dynamic" CssClass="textErrorMessageNormal" ErrorMessage="Comment is required before approval"
ValidationGroup="Approve"></asp:RequiredFieldValidator><br />
<asp:ImageButton ID="btnApprove" runat="server" CssClass="spbutton" Visible="false"
ImageUrl="~/Images/ButtonApprove.gif" ValidationGroup="Approve" CommandName="Approve">
</asp:ImageButton>
<asp:ImageButton ID="btnSave" runat="server" CssClass="spbutton" Visible="false"
ImageUrl="~/Images/ButtonSave.gif" ValidationGroup="Save" CommandName="Save">
</asp:ImageButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="pager" />
<HeaderStyle CssClass="gridtableHeading" Wrap="False" />
<AlternatingRowStyle CssClass="alternateRow" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
View 2 Replies
Mar 7, 2011
I have a webform which has an updatepanel with a combobox, add button, delete button and a table. The functiion of the two buttons is to add or delete table rows. However, the table is getting cleared everytime the combobox item is selected. Is there anotherway of retaining the table contents?The code for the updatepanel is:
<asp:UpdatePanel ID="UpdatePanelTreatment" runat="server" UpdateMode="Conditional">
<triggers>
<asp:PostbackTrigger ControlID="cboTreatment" />
asp:PostbackTrigger ControlID="btnAdd" />
View 3 Replies