Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Issue with Dynamic Dependent Drop Down Menu

0 views
Skip to first unread message

phree...@gmail.com

unread,
Jan 25, 2008, 1:26:20 AM1/25/08
to
I'm having issues dynamically populating a second drop down menu
that's dependent upon a selection in the first drop down menu. When I
select an option from the first menu, the page posts back and doesn't
recognize the "ddlPlantTypeID_SelectedIndexChanged" function from the
onSelectedIndexChanged property of the first menu. I've even inserted
a breakpoint within the function in the code behind to no avail. Why
is the "ddlPlantTypeID_SelectedIndexChanged" function not being
invoked? Where am I going wrong? Is it my code or a missing
configuration?

Thanks,
John


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

My web page code is:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="
plantgrid.ascx.cs" Inherits="FPSweb.usercontrols.plantgrid" %>
<table width="593" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><table width="100%" border="0" cellpadding="2"
cellspacing="2">
<tr>
<td width="54">Plant ID:</td>
<td width="62"><asp:TextBox ID="txtPlantID"
runat="server" Width="50"></asp:TextBox></td>
<td width="42">Status:</td>
<td width="121"><asp:DropDownList ID="ddlPlantStatus"
runat="server" Width="110"></asp:DropDownList></td>
<td><asp:Button ID="btnSearch" runat="server"
OnClick="btnSearch_Click" Text="Search" /></td>
</tr>
</table></td>
</tr>
<tr><td><hr /></td></tr>
<tr>
<td>
<table width="100%" border="0" cellpadding="2"
cellspacing="2">
<tr>
<td width="129">Select the type of plant:</td>
<td><asp:DropDownList ID="ddlPlantTypeID"
runat="server" Width="326" AutoPostBack="true"
OnSelectedIndexChanged="ddlPlantTypeID_SelectedIndexChanged"></
asp:DropDownList></td>
<td width="95">&#160;</td>
</tr>
<tr>
<td>Select the variety of plant:</td>
<td><asp:DropDownList ID="ddlVarietyID"
runat="server" Width="326"></asp:DropDownList></td>
<td>&#160;</td>
</tr>
</table>
</td>
</tr>
<tr><td><hr /></td></tr>
</table>
<br />
<asp:Label ID="lblmessage" runat="server" Text="" Visible="false" />
<asp:ObjectDataSource ID="ObjectDataSourcePlantSearch" runat="server"
SelectMethod="SearchPlant"
TypeName="BusinessLayer.Plant">
<SelectParameters>
<asp:ControlParameter ControlID="ddlPlantTypeID"
DefaultValue="" Name="m_planttypeid"
PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="ddlVarietyID" DefaultValue=""
Name="m_varietyid"
PropertyName="SelectedValue" Type="String" />
<asp:QueryStringParameter DefaultValue="" Name="m_groupid"
QueryStringField="groupid"
Type="String" />
<asp:ControlParameter ControlID="ddlPlantStatus"
DefaultValue="" Name="m_statuscode"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<table width="589" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="46" style="border-left:1px solid #D6D3CE;"
class="gridViewHeader">Group Number</td>
<td width="33" class="gridViewHeader">Plant</td>
<td width="62" class="gridViewHeader">Accession</td>
<td width="133" class="gridViewHeader">Location</td>
<td width="95" class="gridViewHeader">Source</td>
<td width="60" class="gridViewHeader">Plant<br /> Date</td>
<td width="77" class="gridViewHeader">Variety<br /> Name</td>
<td style="border-right:1px solid #D6D3CE; text-align:left;"
class="gridViewHeader">Status</td>
</tr>
</table>
<div id="gridscroll" class="scroll">
<asp:GridView ID="dgPlants" runat="server" Width="589"
BorderStyle="solid" BorderColor="#D6D3CE" ShowHeader="False"
AllowSorting="True" DataSourceID="ObjectDataSourcePlantSearch"
AutoGenerateColumns="False" >
<AlternatingRowStyle BackColor="Gainsboro" />
<Columns>
<asp:HyperLinkField HeaderText="Group Number"
SortExpression="GroupID" DataTextField="GroupID"
DataNavigateUrlFormatString="~/group.aspx?groupid={0}"
DataNavigateUrlFields="GroupID" ItemStyle-Width="48" />
<asp:HyperLinkField HeaderText="Plant"
SortExpression="PlantID" DataTextField="PlantID"
DataNavigateUrlFormatString="~/plant.aspx?plantid={0}"
DataNavigateUrlFields="PlantID" ItemStyle-Width="35" />
<asp:BoundField HeaderText="Accession"
DataField="AccessionDescription" SortExpression="AccessionDescription"
ItemStyle-Width="64" />
<asp:BoundField ItemStyle-Wrap="false" HeaderText="Location"
DataField="Location" SortExpression="Location" ItemStyle-Width="135" /
>
<asp:BoundField HeaderText="Source"
DataField="GroupPublicSource" ItemStyle-Width="97" />
<asp:BoundField HeaderText="Plant Date" DataField="PlantDate"
SortExpression="PlantDate" ItemStyle-Width="62" />
<asp:BoundField HeaderText="Variety Name"
DataField="VarietyDescription" SortExpression="VarietyDescription"
ItemStyle-Width="79" />
<asp:BoundField HeaderText="Status" DataField="RemoveStatus" /
>
</Columns>
<EmptyDataTemplate>
<div style="width:585px; font-weight:bold; text-
align:center;">No records found</div>
</EmptyDataTemplate>
</asp:GridView>
</div>


My code behind is:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BusinessLayer;
using LT;

namespace FPSweb.usercontrols
{
public partial class plantgrid : BaseUserControl
{
protected int plantid;
protected string plantstatuscode = "";
protected int varietyid;
protected int planttypeid;

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
plantid = Utils.GetQSParamAsInt("plantid");
// plantstatuscode =
Utils.GetQSParamAsString("plantstatuscode") == null ? "" :
Utils.StripHTML(Utils.GetQSParamAsString("plantstatuscode"));
plantstatuscode = "NRM";
varietyid = Utils.GetQSParamAsInt("varietyid");
planttypeid = Utils.GetQSParamAsInt("planttypeid");
BindControls();
}
}
protected void BindControls()
{
string err = "";
txtPlantID.Text = plantid.ToString();
Common.PopulateStatusDropDown(this.ddlPlantStatus, true,
plantstatuscode.ToString(), "plant");
PopulateDropDown(this.ddlPlantTypeID, Common.GetPlantTypes
(0, out err), "plantTypeDescription", "plantTypeID", true,
planttypeid.ToString());
this.ddlVarietyID.Items.Insert(0, new ListItem("Select
one", ""));
this.ddlVarietyID.Enabled = false;
//PopulateDropDown(this.ddlVarietyID, null,
"varietyDescription", "varietyID", true, varietyid.ToString());
//PopulateDropDown(this.ddlGroupID ,
Group.GetGroup(groupid.ToString()), "groupid", "groupid", true,
groupid.ToString());
}

protected void btnSearch_Click(object sender, EventArgs e)
{
string qrystr = "";
plantid = Utils.CInt(txtPlantID.Text);
plantstatuscode = ddlPlantStatus.SelectedValue.ToString();
varietyid = Utils.CInt(ddlVarietyID.SelectedValue);
planttypeid = Utils.CInt(ddlPlantTypeID.SelectedValue);

qrystr += (Utils.IsEmpty(plantid)) ? "" :
(Utils.IsEmpty(qrystr)) ? "?plantid=" + plantid : "&plantid=" +
plantid;
qrystr += (Utils.IsEmpty(plantstatuscode)) ? "" :
(Utils.IsEmpty(qrystr)) ? "?plantstatuscode=" + plantstatuscode :
"&plantstatuscode=" + plantstatuscode;
qrystr += ( Utils.IsEmpty(varietyid)) ? "" :
(Utils.IsEmpty(qrystr)) ? "?varietyid=" + varietyid : "&varietyid=" +
varietyid;
qrystr += (Utils.IsEmpty(planttypeid)) ? "" :
(Utils.IsEmpty (qrystr)) ? "?planttypeid=" + planttypeid :
"&planttypeid=" + planttypeid;

if (!Utils.IsEmpty(plantid))
{
Response.Redirect("~/plant.aspx" + qrystr);
}
}

protected void ddlPlantTypeID_SelectedIndexChanged(object
sender, EventArgs e)
{
LoadDropDown2Data();
}

private void LoadDropDown2Data()
{
string err = "";
// PopulateDropDown(this.ddlVarietyID,
Common.GetVarieties(0, this.ddlPlantTypeID.SelectedIndex, out err),
"varietyDescription", "varietyID", true, varietyid.ToString());
this.ddlVarietyID.Items.Insert(0, new ListItem("No", ""));
this.ddlVarietyID.Enabled = true;
}
}
}

Vincent A.

unread,
Feb 3, 2008, 8:40:26 AM2/3/08
to
> }- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

Hi ! I think it's a classical issue with drop down list ... Try to fix
Autopostback property of your drop down list to True. It causes
autopostback when you change index of you drop down list and this
executes your function _SelectedIndexChanged()

See you,

Vincent A.

unread,
Feb 3, 2008, 8:43:31 AM2/3/08
to
On 25 jan, 07:26, "john_mcma...@gap.com" <phreesk...@gmail.com> wrote:
> }- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

Oups, I've just read again your code and you fixed autopostback to
true ... Sorry

0 new messages