CodeSmarterNotHarder
asked on
ASP.Net - handling event from Dropdown inside a Repeater
Hello,
I have dropdown list inside each row of my repeater control. What I need to do is handle the event when a user changes the selected item.
I have attached my repeater code. Here is the code I use for populating the drop downs:
protected void rptTable_ItemDataBound(obj ect sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingIt em)
{
DataRow row = e.Item.DataItem as DataRow;
DropDownList ddlReimbursement = e.Item.FindControl("ddlSta tus") as DropDownList;
ListItem li0 = new ListItem("No Reimbursement", "1");
ListItem li1 = new ListItem("Partially Reimbursed", "2");
ListItem li2 = new ListItem("Fully Reimbursed", "3");
ddlReimbursement.Items.Add (li0);
ddlReimbursement.Items.Add (li1);
ddlReimbursement.Items.Add (li2);
DataRowView drv = e.Item.DataItem as DataRowView;
ddlReimbursement.SelectedV alue = drv.Row.ItemArray[16].ToSt ring();
}
}
Please can somebody help me or point me in the right direction for handling the dropdownList selectedIndexChanged event? Thanks
I have dropdown list inside each row of my repeater control. What I need to do is handle the event when a user changes the selected item.
I have attached my repeater code. Here is the code I use for populating the drop downs:
protected void rptTable_ItemDataBound(obj
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingIt
{
DataRow row = e.Item.DataItem as DataRow;
DropDownList ddlReimbursement = e.Item.FindControl("ddlSta
ListItem li0 = new ListItem("No Reimbursement", "1");
ListItem li1 = new ListItem("Partially Reimbursed", "2");
ListItem li2 = new ListItem("Fully Reimbursed", "3");
ddlReimbursement.Items.Add
ddlReimbursement.Items.Add
ddlReimbursement.Items.Add
DataRowView drv = e.Item.DataItem as DataRowView;
ddlReimbursement.SelectedV
}
}
Please can somebody help me or point me in the right direction for handling the dropdownList selectedIndexChanged event? Thanks
<asp:Repeater ID="rptTable" runat="server" EnableViewState="false" OnItemDataBound="rptTable_ItemDataBound" OnItemCommand="rptTable_ItemCommand">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><asp:DropDownList ID="ddlStatus" runat="server" AutoPostBack="true" EnableViewState="false"></asp:DropDownList></td>
</tr>
</ItemTemplate>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Ah, sorry I have got it to build by renaming e and sender. That code compiles but I have added the handler and put a break point on it and it is not being hit when I select any of the dropdown items. It posts back but does not break on the SelectedIndexChanged event!!
protected void rptTable_ItemDataBound(obj ect sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingIt em)
{
//populating the drop downs
DataRow row = e.Item.DataItem as DataRow;
DropDownList ddlReimbursement = e.Item.FindControl("ddlSta tus") as DropDownList;
ListItem li0 = new ListItem("No Reimbursement", "1");
ListItem li1 = new ListItem("Partially Reimbursed", "2");
ListItem li2 = new ListItem("Fully Reimbursed", "3");
ddlReimbursement.Items.Add (li0);
ddlReimbursement.Items.Add (li1);
ddlReimbursement.Items.Add (li2);
//create the handler
ddlReimbursement.SelectedI ndexChange d += delegate(object sender1, EventArgs ex) { };
}
}
//neither of these breakpoints are being hit :(
protected void ddlReimbursement_SelectedI ndexChange d(object sender, EventArgs e)
{
}
protected void ddlStatus_SelectedIndexCha nged(objec t sender, EventArgs e)
{
}
protected void rptTable_ItemDataBound(obj
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingIt
{
//populating the drop downs
DataRow row = e.Item.DataItem as DataRow;
DropDownList ddlReimbursement = e.Item.FindControl("ddlSta
ListItem li0 = new ListItem("No Reimbursement", "1");
ListItem li1 = new ListItem("Partially Reimbursed", "2");
ListItem li2 = new ListItem("Fully Reimbursed", "3");
ddlReimbursement.Items.Add
ddlReimbursement.Items.Add
ddlReimbursement.Items.Add
//create the handler
ddlReimbursement.SelectedI
}
}
//neither of these breakpoints are being hit :(
protected void ddlReimbursement_SelectedI
{
}
protected void ddlStatus_SelectedIndexCha
{
}
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I've added this to my code but seem to have something wrong as I'm getting build errors.
Error 3 A local variable named 'e' cannot be declared in this scope because it would give a different meaning to 'e', which is already used in a 'parent or current' scope to denote something
Code behind
protected void rptTable_ItemDataBound(obj
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingIt
{
DataRow row = e.Item.DataItem as DataRow;
DropDownList ddlReimbursement = e.Item.FindControl("ddlSta
ListItem li0 = new ListItem("No Reimbursement", "1");
ListItem li1 = new ListItem("Partially Reimbursed", "2");
ListItem li2 = new ListItem("Fully Reimbursed", "3");
ddlReimbursement.Items.Add
ddlReimbursement.Items.Add
ddlReimbursement.Items.Add
DataRowView drv = e.Item.DataItem as DataRowView;
ddlReimbursement.SelectedV
ddlReimbursement.SelectedI
}
}
protected void ddlReimbursement_SelectedI
{
}
Thanks