AJAX :: RadioButtonList.SelectedIndexChanged Not Raised When The ListItem Has Selected="True" Not Working
Jun 29, 2010
I have two radiobuttons in radiobuttonlist and based on selection, i am enabling and disabling the text box.
First time i used date radiobutton and i took date in corresponding textbox and i saved it into database and then when i came back on same page i saw the date radiobutton is checked has proper value then i clicked on another radiobutton and this time page is postback and clear my all the data which was in my other controls(I have 5-6 text boxed on my page). I dont know why?, It supposed to select my other radiobutton and enable the corresponding text box
[Code]....
if (!Page.IsPostBack)
{
if (gvCredentialTypes.SelectedIndex >= 0)
{
CredentialType credType = CredentialType.FindCredentialType(gvCredentialTypes.SelectedValue.ToString());
if (!String.IsNullOrEmpty(credType.CredentialTypeName)) //If exists, load data
{
String expDays = credType.ExpirationLength.ToString();
DateTime expDate = Convert.ToDateTime(credType.ExpirationDate);
// Assign the value to the controls
LoadExpirationDaysDateValue(expDays, expDate);
}
}
}
private void LoadExpirationDaysDateValue(String expDays, DateTime expDate)
{
// Determines whether value for Days or Date is present
Boolean IsDays = false;
// Check if days value is present
if (String.IsNullOrEmpty(expDays) || expDays.Equals("0"))
{
txtExpirationDays.Text = String.Empty;
}
else
{
txtExpirationDays.Text = expDays;
IsDays = true;
}
if (expDate.ToShortDateString().Equals ("1/1/0001"))
{
txtExpirationDate.Text = String.Empty;
}
else
{
txtExpirationDate.Text = expDate.ToShortDateString();
IsDays = false;
}
// Set the radio button value based on whether Date or Days value is present
if (IsDays)
{
// Get ref to the 1st radio item
ListItem liExpirationInDays = rbExpiration.Items.FindByValue("rbExpirationInDays");
if (liExpirationInDays != null)
{
liExpirationInDays.Selected = true;
rbExpiration.Items.FindByValue("rbExpirationDate").Selected = false;
txtExpirationDate.Text = string.Empty;
txtExpirationDays.Text = expDays;
// Enable or disable the controls based on the radio button selection
txtExpirationDays.Enabled = true;
RequiredFieldValidator1.Enabled = true;
RangeValidator1.Enabled = true;
txtExpirationDate.Enabled = false;
RegularExpressionValidator1.Enabled = false;
CalendarExtender2.Enabled = false;
//compDateValidator.Enabled = false;
RequiredFieldValidator2.Enabled = false;
}
}
else
{
// Get ref to the 2nd radio item
ListItem liExpirationDate = rbExpiration.Items.FindByValue("rbExpirationDate");
if (liExpirationDate != null)
{
liExpirationDate.Selected = true;
rbExpiration.Items.FindByValue("rbExpirationInDays").Selected = false;
txtExpirationDays.Text = string.Empty;
txtExpirationDate.Text = expDate.ToShortDateString();
// Enable or disable the controls based on the radio button selection
txtExpirationDate.Enabled = true;
RegularExpressionValidator1.Enabled = true;
RequiredFieldValidator2.Enabled = true;
CalendarExtender2.Enabled = true;
//compDateValidator.Enabled = true;
txtExpirationDays.Enabled = false;
RequiredFieldValidator1.Enabled = false;
RangeValidator1.Enabled = false;
}
}
}
I've a Gridview control using an ODS(ObjectDataSource) to fetch data. For the best performance and efficiency, I've turned-off the view state of Gridview (i.e. EnableViewstate = "false".And I've also enabled caching in the associated Objectdatasource. This eliminates as much as 50-60% performance optimization because it eliminates the DB round-trip .. courtesy ODS Caching.So, after this I got stuck into the famous "ODS sorting" issue but I managed to invent a tricky solution for it and its working fine
I am using jquery and c# to dynamically set a radiobuttonlist listitem to selected. I want to create a reset-type button to reset the radiobuttonlist selected item back to the first item in the list. jQuery/jsTree function currently reseting textbox and hidden field:
$('#ContentPlaceHolder1_hfNodeID').val(''); $('.txtPage').val(''); $('.rblContentTypesGetAll').val(); $('.contentPageForm').show(), .rblContentTypesGetAll is the radiobuttonlist i want to reset (or select the top most listitem). HTML of the form: <asp:Panel ID="PagesForm" CssClass="contentPageForm" runat="server"> <asp:HiddenField ID="hfNodeID" runat="server" Value="" /> <table> <tr> <td>Page</td> <td><asp:TextBox ID="txtPage" CssClass="txtPage" runat="server" /><span class="validate">*</span><br /> <asp:RequiredFieldValidator ID="rfvPage" runat="server" CssClass="validate" ControlToValidate="txtPage" Display="Dynamic" ErrorMessage="Page Name Required" ValidationGroup="page" /></td> </tr> <tr> <td>Content Type</td> <td> <asp:RadioButtonList id="rblContentTypesGetAll" CssClass="rblContentTypesGetAll" OnLoad="rblContentTypesGetAll_Load" runat="server" > </asp:RadioButtonList> </td> </tr> <tr> <td> <asp:Button ID="Submit" runat="server" OnClick="PageSubmit_Click" Text="Save" ValidationGroup="page" /> <asp:Button ID="Cancel" runat="server" OnClick="Cancel_Click" Text="Cancel" /> </td> </tr> </table> </asp:Panel>
I have 2 radiobuttonlist in a web forms, each contains of 4 ListItem. So there are 8 ListItems in total. It is initialised such that none of the ListItems is selected. I want to validate that at least one of the ListItems is selected when submit button is pressed. How to do it? i.e. at least 1 ListItem is selected, either from radiobuttonlist1 or radiobuttonlist2.
I have 2 radiobuttonlist in a web forms, each contains of 4 ListItem. So there are 8 ListItems in total. It is initialised such that none of the ListItems is selected. I want to validate that at least one of the ListItems is selected when submit button is pressed. How to do it? i.e. at least 1 ListItem is selected, either from radiobuttonlist1 or radiobuttonlist2.
I am adjusting my DropDownList on my MASTERPAGE to point to resourcefiles - like this:
<asp:DropDownList runat="server" ID="Language1" AutoPostBack="true" OnSelectedIndexChanged="Language1_SelectedIndexChanged"> <asp:ListItem value="0" Text="<%$ Resources:SiteMapLocalizations, DropDownSelect1%>"></asp:ListItem> <asp:ListItem Value="0" Text="<%$ Resources:SiteMapLocalizations, DropDownSelect2%>"></asp:ListItem> <asp:ListItem Value="0" Text="<%$ Resources:SiteMapLocalizations, DropDownSelect3%>"></asp:ListItem> </asp:DropDownList> Problem now is that my SelectedIndexChanged has broken its funktionality in MasterPage.master.vb: Protected Sub Language1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Dim cookie As New HttpCookie("SelLang") cookie.Value = Language1.SelectedValue Response.SetCookie(cookie) Response.Redirect(Request.UrlReferrer.AbsoluteUri) this is for the redirecting to the referrer page End Sub
On the first ListItem I need to have a label that displays some text from the code behind of the page. Logically it seems to me like I would be able to do something like this: 100% Obviously this does not work because I am getting an error: The 'Text' property of 'asp:ListItem' does not allow child objects.
I have a RadioButtonList with three ListItems, like this:
[Code]....
TrueRuleCondition, FalseRuleCondition, and CustomRuleCondition are protected constants in the code-behind file that I want to use as the values for my listitems. Unfortunately, the values get treated as literal values instead of having the values of the variables inserted. Does anyone know of a way to do this or why this doesn't work as I expect it to?
I must be doing something wrong here but I can't find an easy way to get this to work. Imagine the following code:
<asp:RadioButtonList ID="MyRadioButtonList" runat="server"> <asp:ListItem Value="<%= CompanyName.SystemName.Constants.PaymentFrequency.FREQUENT.ToString() %>" Text="Yes" Selected="True"></asp:ListItem> <asp:ListItem Value="<%= CompanyName.SystemName.Constants.PaymentFrequency.ONCE.ToString() %>" Text="No, Just do this once"></asp:ListItem> </asp:RadioButtonList>
But it doesn't compile the statement before it renders the page. So if I get the selected value of this radiobuttonlist it contains something like "<%= Compan... %>" instead of what my constant defines.
Is it possible to add the ListItem values in the code-behind within a for loop? If so, what is it? Here is my current code:
rblContentTypesGetAll.Items.Clear(); for (int i = 0; i < dt.Rows.Count; i++) { rblContentTypesGetAll.Items.Add(dt.Rows[i]["contentType"].ToString()); }
I have two dropdownlist in cascading using a web service, all is cool, but the problem is how use the method onselectedindexchanged in the second dropdownlist, method onselectedindexchanged in second dropdownlist don't work, how could i use method selectedindexchanged in web service?
I have a table cell with a RadioButtonList. When each item is selected, the SelectedIndexChanged event is supposed to fire so the app can populate a related listbox. The problem is it stopped working. Now if I selected the first entry 'Division', the event never fires. I put a break-point on the event handler and it gets called for the other entries but not for Division. I'd believe it if some other code is interfering, I just don't know where to start looking.
[update] By not working, I mean if you selected Item #2, the update works; then if you select Item #1 it doesn't. If I change where the 'Division' item appears in the list, it still has the problem. Is there something in the page load cycle that could be aborting the event handling chain?
I have a radiobutton list that changes the contents of a dropdownlist when the selected radiobuttonlist index is changed using the SelectedIndexChanged event. Both controls are within the same updatepanel and both have autopostback set to true.
For some reason when I change the dropdownlist and cause a postback, the radiobuttonlist change event fires and repopulates the dropdownlist which effectively cancels the selection made in the dropdown.
I know something simple must be causing this behaviour but I cannot think what and my debugging efforts are not shedding any light thus far. I have tried putting a breakpoint on every procedure in my form and the first event that fires is the radiobuttonlist SelectedIndexChanged event so nothing in my server side code seems to be doing this which suggests it is something in the markup but I can't think what.
I have a RadioButtonList with some fixed element and a default selected. If I uncheck the selection with javascript, on postback the SelectedIndexChanged event is not fired.
I would expect that the SelectedIndexChanged is called because the index is changed to -1.
As far as I know, the stage of data collection from the submit of the form is handled by IPostBackDataHandler.LoadPostData method.
I derived a class from RadioButtonList to verify when LoadPostData is called and I noticed that when non of the radio button is selected the method is not called and the same for SelectedIndexChanged event.
it seems that if the key of RadioButtonList is not present in the Page.Request.Form.Keys array, the LoadPostData is not called.
I am using a CollapsiblePanelExtender inside a ListView and aside from one minor, but annoying problem, it works fine. The problem is, when the page first renders, I see all the panels expanded for a short moment before they all get collapsed. There are multiple CPEs because the ListView is databound to about 45 records. I have the Collapsed=True, and based on some not-quite-clear documentation, I also set the CollapsedSize=0 and the panel's Height=0. After that last change (panel height), they are now displaying collapsed except that the gridviews inside the target panel is still showing in a sort of overlapped way. I'd upload a picture so you can see, but I don't think I can in this forum. Since the page looks like this for about a half-second, it's enough to confuse and annoy my users (and myself). Can someone please help me set this up to truly show collapsed when the page loads?
I did also try looking at the code in the AJAX Toolkit's sample website but I still don't quite understand "Collapsed - Specifies that the object should initially be collapsed or expanded. Set this to match your initial size. In this case, we initially set the panel to a height of 0 to match the CollapsedSize property, so when the page first renders, we don't see the panel expanded." If the options are True/False, why does it say to set this to match your initial size? And I did set the panel height to 0 to match the collapsedsize and it's just not working.
I am trying to give animation effect to a label , when user select option from radio buttonlist for selectedindexchange event , but i cannot get animationextender for this event.because <onLoad> <onClick> ..... list does not have <onSelectedindexchanged> option. how to do this I saw a code which adding animation effect from server side, though i have problem of excute on radiobutonlist index change event.
i read article "using javascript with asp.net radiobuttonlist control" and i found it useful.
[var RB1 = document.getElementById("<%=RadioButtonList1.ClientID%>"); var radio = RB1.getElementsByTagName("input"); if am setting radio[1].checked = 1; the item is checked. ]
I have the same problem as [URL] However, the solution doesn't work for me since I'm using .Net 4.0 and xhtmlConformance is not there from start.
Basically, using a master page, the RadioButtonList still do the whole page postback even it's in the UpdatePanel. When I put the exact same code in a standalone page without a master page, it works as expected.
I have a radiobutton that triggers the updatepanel to display or not..
when the page loads, i can select yes adn it displays, i can select no and it disappears.. i hit yes it reappears.. but after like the 3rd time going back and fourth testing the functionality, it stops displaying all together.
Is there something i need to look at to find out what is going on?