I created a drop down
populated it dynamically
write a code to display some value based on selectedindexchanged event
but it always takes the first value.
pls help me
code
-------------------------------------------------
// Page Load
protected void Page_Load( object sender, EventArgs e )
{
if (!IsPostBack)
{
PopulateMultipleAddress();
}
}
------------------------------------------------ loading dropdown, it is postback
private void PopulateMultipleAddress()
{
int cid = 0 ;
cid = Convert.ToInt32(DataAccessContext.CustomerRepository.GetIDFromUserName(Membership.GetUser().UserName));
MemberAddress ma = new MemberAddress();
DataSet ds = ma.MemberAddressListing(cid);
if (ds.Tables[0].Rows.Count == 0)
{
uxShippingSelectAddress.Text = "No Multiple Address Found!";
}
else
{
uxShippingSelectAddress.DataSource = ds.Tables[0];
uxShippingSelectAddress.DataTextField = ds.Tables[0].Columns["Address1"].ColumnName.ToString();
uxShippingSelectAddress.DataValueField = ds.Tables[0].Columns["RowID"].ColumnName.ToString();
uxShippingSelectAddress.DataBind();
uxShippingSelectAddress.Items.Insert(0, new ListItem("Select your shipping address"));
uxShippingSelectAddress.SelectedIndex = 0;
}
}
---------------------------------------------- on dropdown selected index change
protected void uxShippingSelectAddress_SelectedIndexChanged(object sender, EventArgs e)
{
PopulateShippingAddressesOnSelect(uxShippingSelectAddress.SelectedIndex);
}
-------------------------------------------
private void PopulateShippingAddressesOnSelect(int rid)
{
if (rid != 0)
{
MemberAddress ma = new MemberAddress();
DataSet ds = ma.MemberAddressListingByRID(rid);
uxShippingFirstName.Text = ds.Tables[0].Columns["FirstName"].ColumnName.ToString();
uxShippingLastName.Text = ds.Tables[0].Columns["LastName"].ColumnName.ToString();
uxShippingCompany.Text = ds.Tables[0].Columns["Company"].ColumnName.ToString();
uxShippingAddress1.Text = ds.Tables[0].Columns["Address1"].ColumnName.ToString();
uxShippingAddress2.Text = ds.Tables[0].Columns["Address2"].ColumnName.ToString();
uxShippingCity.Text = ds.Tables[0].Columns["City"].ColumnName.ToString();
uxCountryState.CurrentState = ds.Tables[0].Columns["State"].ColumnName.ToString();
uxShippingZip.Text = ds.Tables[0].Columns["Zip"].ColumnName.ToString();
uxCountryState.CurrentCountry = ds.Tables[0].Columns["Country"].ColumnName.ToString();
uxShippingPhone.Text = ds.Tables[0].Columns["Phone"].ColumnName.ToString();
uxShippingFax.Text = ds.Tables[0].Columns["Fax"].ColumnName.ToString();
}
}
Loading
Jiteendra SampathiraoPosted Jul 12, 2011, 3:31 AM
Use these
PopulateShippingAddressesOnSelect(uxShippingSelectAddress.SelectedIndex.Tostring());// For index value
PopulateShippingAddressesOnSelect(uxShippingSelectAddress.SelectedItem.Value);// For item value
PopulateShippingAddressesOnSelect(uxShippingSelectAddress.SelectedValue);// For item value
hope it resolve your problem...
anoopPosted Jul 12, 2011, 3:43 AM
i did a mistake
used
ds.Tables[0].Columns["FirstName"].ColumnName.ToString();
hahahha
now changed that
thanks jitendra..i was using selectedindex first...but i was supposed to use selectedvalue
thx
Jiteendra SampathiraoPosted Jul 12, 2011, 3:39 AM
Yeah,
It's fine.....You are right..
anoopPosted Jul 12, 2011, 3:36 AM
I am passing the same
PopulateShippingAddressesOnSelect(Convert.ToInt32(uxShippingSelectAddress.SelectedItem.Value));
is that ok???
Jiteendra SampathiraoPosted Jul 12, 2011, 3:36 AM
you need to set autopostback property=true
anoopPosted Jul 12, 2011, 3:34 AM
VulpesPosted Jul 12, 2011, 3:26 AM