I had trouble getting the value a user selected from a DropDownList. I’ve figured out that I require a postback to get my values to reset and be able to get reassigned. (I’ve tried things like ClientIDMode=”static” in the page control and doing “var dropDownList= $(<%= ddlNewCaseFiles.ClientID %>).val() ) however nothing seems to work. So I implemented this in my header:
<script runat="server">
protected void ddlCaseFilesNew_SelectedIndexChanged(object sender, EventArgs e)
{
hidNewCaseFile.Value = ddlCaseFilesNew.SelectedItem.Value;
}
</script>
and it seems to be getting the updated values selected. But for some reason when I click on an item it send me to the “Cannot find Resource” page. I’m guessing if I add an Updatepanel to my DropDownList it will probably fix it?(since it is only posting back my dropDownList). But I am having trouble with it.
this is my DropDownlist:
<div id="ddlFiles">
<label>
Select new CaseFile:</label>
<asp:DropDownList runat="server" ID="ddlCaseFilesNew" DataSourceID="dsCaseFiles"
DataTextField="Display" DataValueField="FileID"
OnPreRender="ddl_PreRender" Width="300px" AutoPostBack="true"
onselectedindexchanged="ddlCaseFilesNew_SelectedIndexChanged"/>
</div>
I’ve tried to implement it here but I’m getting a “UpdatePanel does not have a property name called “dropDownList””. Any help would be great fully appreaciated.:
<asp:UpdatePanel runat="server" ID="UpdatePanel1">
<asp:DropDownList runat="server" ID="ddlCaseFilesNew" DataSourceID="dsCaseFiles"
DataTextField="Display" DataValueField="FileID" OnPreRender="ddl_PreRender" Width="300px"
AutoPostBack="true" onselectedindexchanged="ddlCaseFilesNew_SelectedIndexChanged" />
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlCaseFilesNew" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
Pre_render as requested:
protected void ddl_PreRender(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
try
{
if (ddl.Items[0].Value != "-1")
ddl.Items.Insert(0, new ListItem("--Select--", "-1"));
}
catch
{
ddl.Items.Insert(0, new ListItem("--Select--", "-1"));
}
}
Also make sure that you have
<asp:ScriptManager runat="server"> </asp:ScriptManager >before you use the update panel