Carla Romere
asked on
Accessing Controls Buried Inside Other Controls
I have inherited a project created by someone who no longer works at my company. We are trying to make some modifications in how the application works and I have hit a snag.
I have a formview with the following structure:
<ContentPlaceHolder>
<table>
<tr>
<td>
<asp:FormView>
<InsertItemTemplate>
<ddlSelectDistributor>
<ddlDistributor>
I want to select a value in <ddlSelectDistributor> and have that populate the dropdown <ddlDistributor> to narrow down the choices the user has to scroll through to find their desired Distributor.
I have autopostback turned on for <ddlSelectDistributor>. Once they have selected a Distributor in <ddlDistributor>, I want to populate a few label fields all within the same <InsertItemTemplate>.
I've tried all the tricks I know to try but can't get the controls to see each other. I have moved the <SqlDataSource> to inside the <InsertItemTemplate> as suggested in one of my searches, but it's just not working yet.
On the <ddlSelectDistributor.OnSe lectedInde xChanged> event, I have the following code currently:
Then on the <ddlDistributor_SelectedIn dexChanged > event, there is the following code:
Any suggestions would be greatly appreciated.
I have a formview with the following structure:
<ContentPlaceHolder>
<table>
<tr>
<td>
<asp:FormView>
<InsertItemTemplate>
<ddlSelectDistributor>
<ddlDistributor>
I want to select a value in <ddlSelectDistributor> and have that populate the dropdown <ddlDistributor> to narrow down the choices the user has to scroll through to find their desired Distributor.
I have autopostback turned on for <ddlSelectDistributor>. Once they have selected a Distributor in <ddlDistributor>, I want to populate a few label fields all within the same <InsertItemTemplate>.
I've tried all the tricks I know to try but can't get the controls to see each other. I have moved the <SqlDataSource> to inside the <InsertItemTemplate> as suggested in one of my searches, but it's just not working yet.
On the <ddlSelectDistributor.OnSe
protected void ddlSelectDistributor_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList mySD = (DropDownList)FormView1.FindControl("ddlSelectDistributor");
DropDownList myDist = (DropDownList)FormView1.FindControl("ddlDistributor");
SqlDataSource sqlDist = (SqlDataSource)FormView1.FindControl("sqlDistributors");
if (mySD.SelectedValue == "1144")
{
sqlDist.SelectCommand="SELECT CUSTOMER_NUMBER + '-' + LOCATION AS CUSTOMER_NUM, CUSTOMER_NAME + ' - ' + CASE SYS_STATE WHEN ' ' THEN SYS_PROVINCE ELSE SYS_STATE END + ' ' + SYS_POSTAL_CODE + ' - ' + SYS_ADDRESS_1 AS Location FROM VW_CUSTOMER_ADDRESSES WHERE (CUSTOMER_NUMBER = '1144') ORDER BY CUSTOMER_NUMBER, LOCATION";
myDist.DataBind();
}
if (mySD.SelectedValue == "2335")
{
sqlDist.SelectCommand="SELECT CUSTOMER_NUMBER + '-' + LOCATION AS CUSTOMER_NUM, CUSTOMER_NAME + ' - ' + CASE SYS_STATE WHEN ' ' THEN SYS_PROVINCE ELSE SYS_STATE END + ' ' + SYS_POSTAL_CODE + ' - ' + SYS_ADDRESS_1 AS Location FROM VW_CUSTOMER_ADDRESSES WHERE (CUSTOMER_NUMBER = '2335') ORDER BY CUSTOMER_NUMBER, LOCATION";
myDist.DataBind();
}
}
Then on the <ddlDistributor_SelectedIn
protected void ddlDistributor_SelectedIndexChanged(object sender, EventArgs e)
{
if (((DropDownList)FormView1.Row.FindControl("ddlDistributor")).SelectedIndex == 0)
{
return;
}
string storeNbr = ((DropDownList)FormView1.Row.FindControl("ddlDistributor")).Text;
if (storeNbr.Length > 0)
{
sqlSelectedDistributor.SelectParameters["CUSTOMER_NUMBER"].DefaultValue = storeNbr;
DataView dv = (DataView)sqlSelectedDistributor.Select(DataSourceSelectArguments.Empty);
if (dv.Table.Rows.Count == 1)
{
((TextBox)FormView1.Row.FindControl("DistributorTextBox")).Text = Util.BlankForNull(dv.Table.Rows[0].ItemArray[0]);
((Label)FormView1.Row.FindControl("lblAddress")).Text = Util.BlankForNull(dv.Table.Rows[0].ItemArray[1]);
((Label)FormView1.Row.FindControl("lblStoreCSZ")).Text = Util.BlankForNull(dv.Table.Rows[0].ItemArray[2]);
((Label)FormView1.Row.FindControl("lblStorePhone")).Text = Util.BlankForNull(dv.Table.Rows[0].ItemArray[3]);
((Label)FormView1.Row.FindControl("lblStoreFax")).Text = Util.BlankForNull(dv.Table.Rows[0].ItemArray[4]);
}
}
((DropDownList)FormView1.Row.FindControl("ddlRAIssuedBy")).Focus();
}
Any suggestions would be greatly appreciated.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER