Hello All
Few days back I was struggling with a repeater problem , where I have to get a value of dropdown list on a button click event which is inside repeater. Eventually I come up with a solution through googling. What I have faced was get the value of appropriate dropdown list while clicking the button of a particular repeater’s row.
It’s being hard to describe rather that visualize :) isn’t it ! ( proposed solution should be as image bellow)
My aspx markup is as bellow :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Repeater </span><span style="color: red;">runat</span><span style="color: blue;">="server" </span><span style="color: red;">ID</span><span style="color: blue;">="rptTeamInfo" </span><span style="color: red;">OnItemDataBound</span><span style="color: blue;">="rptTeamInfo_ItemDataBound" </span><span style="color: red;">OnItemCommand</span><span style="color: blue;">="rptTeamInfo_ItemCommand"> <</span><span style="color: maroon;">ItemTemplate</span><span style="color: blue;">> <</span><span style="color: maroon;">div </span><span style="color: red;">class</span><span style="color: blue;">="side2"> <</span><span style="color: maroon;">div </span><span style="color: red;">class</span><span style="color: blue;">="form"> <</span><span style="color: maroon;">a </span><span style="color: red;">href</span><span style="color: blue;">="#"></span>delete<span style="color: blue;"></</span><span style="color: maroon;">a</span><span style="color: blue;">><</span><span style="color: maroon;">a </span><span style="color: red;">href</span><span style="color: blue;">="#"></span>edit /<span style="color: blue;"></</span><span style="color: maroon;">a</span><span style="color: blue;">> <</span><span style="color: maroon;">ul </span><span style="color: red;">class</span><span style="color: blue;">="p2"> <</span><span style="color: maroon;">span </span><span style="color: red;">class</span><span style="color: blue;">="style1"></span>[ <span style="background: yellow;"><%</span><span style="color: blue;">#</span>Eval(<span style="color: #a31515;">"team_name"</span>)<span style="background: yellow;">%></span> ]<span style="color: blue;"></</span><span style="color: maroon;">span</span><span style="color: blue;">> </span>- [ <span style="background: yellow;"><%</span><span style="color: blue;">#</span>Eval(<span style="color: #a31515;">"creation_date"</span>)<span style="background: yellow;">%></span>]<span style="color: blue;"><</span><span style="color: maroon;">br </span><span style="color: blue;">/> <</span><span style="color: maroon;">span </span><span style="color: red;">class</span><span style="color: blue;">="style2"></span>[<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label </span><span style="color: red;">runat</span><span style="color: blue;">="server" </span><span style="color: red;">Text</span><span style="color: blue;">="ADMIN bla bla bla"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label</span><span style="color: blue;">></span>] - [ <span style="background: yellow;"><%</span><span style="color: blue;">#</span>Eval(<span style="color: #a31515;">"team_leader"</span>)<span style="background: yellow;">%></span>]<span style="color: blue;"></</span><span style="color: maroon;">span</span><span style="color: blue;">> </span>- [ <span style="background: yellow;"><%</span><span style="color: blue;">#</span>Eval(<span style="color: #a31515;">"description"</span>)<span style="background: yellow;">%></span>] <span style="color: blue;"></</span><span style="color: maroon;">ul</span><span style="color: blue;">> </</span><span style="color: maroon;">div</span><span style="color: blue;">> <</span><span style="color: maroon;">div </span><span style="color: red;">class</span><span style="color: blue;">="form2"> <</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ImageButton </span><span style="color: red;">id</span><span style="color: blue;">="imgAddToTeam" </span><span style="color: red;">CommandName</span><span style="color: blue;">="select" </span><span style="color: red;">CommandArgument</span><span style="color: blue;">='</span><span style="background: yellow;"><%</span><span style="color: blue;"># </span>Eval("team_id") <span style="background: yellow;">%></span><span style="color: blue;">' </span><span style="color: red;">ImageUrl</span><span style="color: blue;">="images/Add_to_team.png" </span><span style="color: red;">runat</span><span style="color: blue;">="server" </span><span style="color: red;">style</span><span style="color: blue;">="</span><span style="color: red;">margin</span><span style="color: blue;">:10px;" </span><span style="color: red;">align</span><span style="color: blue;">="right"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ImageButton</span><span style="color: blue;">> </span><span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">DropDownList </span><span style="color: red;">ID</span><span style="color: blue;">="ddlUserList" </span><span style="color: red;">runat</span><span style="color: blue;">="server"> </</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">DropDownList</span><span style="color: blue;">> </</span><span style="color: maroon;">div</span><span style="color: blue;">> <</span><span style="color: maroon;">div </span><span style="color: red;">class</span><span style="color: blue;">="row1"> <</span><span style="color: maroon;">ul </span><span style="color: red;">class</span><span style="color: blue;">="column"> <</span><span style="color: maroon;">p</span><span style="color: blue;">><</span><span style="color: maroon;">img </span><span style="color: red;">src</span><span style="color: blue;">="images/name.png" /> </span>Name<span style="color: blue;"></</span><span style="color: maroon;">p</span><span style="color: blue;">> </</span><span style="color: maroon;">ul</span><span style="color: blue;">> <</span><span style="color: maroon;">ul </span><span style="color: red;">class</span><span style="color: blue;">="column2"> <</span><span style="color: maroon;">p</span><span style="color: blue;">><</span><span style="color: maroon;">img </span><span style="color: red;">src</span><span style="color: blue;">="images/username.png" /> </span>Username<span style="color: blue;"></</span><span style="color: maroon;">p</span><span style="color: blue;">> </</span><span style="color: maroon;">ul</span><span style="color: blue;">> <</span><span style="color: maroon;">ul </span><span style="color: red;">class</span><span style="color: blue;">="column3"> <</span><span style="color: maroon;">p</span><span style="color: blue;">><</span><span style="color: maroon;">img </span><span style="color: red;">src</span><span style="color: blue;">="images/username.png" /> </span>Access<span style="color: blue;"></</span><span style="color: maroon;">p</span><span style="color: blue;">> </</span><span style="color: maroon;">ul</span><span style="color: blue;">> </</span><span style="color: maroon;">div</span><span style="color: blue;">> <</span><span style="color: maroon;">div </span><span style="color: red;">class</span><span style="color: blue;">="row2"> <</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Repeater </span><span style="color: red;">ID</span><span style="color: blue;">="rptUserInfo" </span><span style="color: red;">OnItemDataBound</span><span style="color: blue;">="rptUserInfo_ItemDataBound" </span><span style="color: red;">runat</span><span style="color: blue;">="server"> <</span><span style="color: maroon;">ItemTemplate</span><span style="color: blue;">> <</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">LinkButton </span><span style="color: red;">id</span><span style="color: blue;">="lnkUserDelete" </span><span style="color: red;">onclick</span><span style="color: blue;">="lnkUserDelete_Click" </span><span style="color: red;">runat</span><span style="color: blue;">="server"></span>delete<span style="color: blue;"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">LinkButton</span><span style="color: blue;">> <</span><span style="color: maroon;">ul </span><span style="color: red;">class</span><span style="color: blue;">="column"> <</span><span style="color: maroon;">p</span><span style="color: blue;">> <</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label </span><span style="color: red;">runat</span><span style="color: blue;">="server" </span><span style="color: red;">id</span><span style="color: blue;">="lblFirstNameIn"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label</span><span style="color: blue;">> <</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label </span><span style="color: red;">runat</span><span style="color: blue;">="server" </span><span style="color: red;">id</span><span style="color: blue;">="lblLastNameIn"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label</span><span style="color: blue;">></</span><span style="color: maroon;">p</span><span style="color: blue;">> </</span><span style="color: maroon;">ul</span><span style="color: blue;">> <</span><span style="color: maroon;">ul </span><span style="color: red;">class</span><span style="color: blue;">="column2"> <</span><span style="color: maroon;">p</span><span style="color: blue;">> <</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label </span><span style="color: red;">runat</span><span style="color: blue;">="server" </span><span style="color: red;">id</span><span style="color: blue;">="lblUserIDIn"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label</span><span style="color: blue;">></</span><span style="color: maroon;">p</span><span style="color: blue;">> </</span><span style="color: maroon;">ul</span><span style="color: blue;">> <</span><span style="color: maroon;">ul </span><span style="color: red;">class</span><span style="color: blue;">="column3"> <</span><span style="color: maroon;">p</span><span style="color: blue;">><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label </span><span style="color: red;">runat</span><span style="color: blue;">="server" </span><span style="color: red;">id</span><span style="color: blue;">="lblUserTypeIn"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label</span><span style="color: blue;">></</span><span style="color: maroon;">p</span><span style="color: blue;">> </</span><span style="color: maroon;">ul</span><span style="color: blue;">> </</span><span style="color: maroon;">ItemTemplate</span><span style="color: blue;">> </</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Repeater</span><span style="color: blue;">> </</span><span style="color: maroon;">div</span><span style="color: blue;">> </</span><span style="color: maroon;">div</span><span style="color: blue;">> </</span><span style="color: maroon;">ItemTemplate</span><span style="color: blue;">> </</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Repeater</span><span style="color: blue;">> </span> |
And my code behind file is as bellow :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
<span style="color: blue;">using </span>System; <span style="color: blue;">using </span>System.Web.UI.WebControls; <span style="color: blue;">using </span>ClassLibrary1.UTILITY; <span style="color: blue;">namespace <span style="color: #666666;">WebDoc</span></span> { <span style="color: blue;">public partial class </span><span style="color: #2b91af;">ManageTeam </span>: System.Web.UI.<span style="color: #2b91af;">Page </span>{ <span style="color: blue;">public int </span>CurrentTeamID { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; } <span style="color: blue;">protected void </span>Page_Load(<span style="color: blue;">object </span>sender, <span style="color: #2b91af;">EventArgs </span>e) { lblUserId.Text = <span style="color: #2b91af;">BUSessionUtility</span>.BUSessionContainer.UserName; <span style="color: #2b91af;">ManageTeamDAL </span>manageTeamDAL = <span style="color: blue;">new </span><span style="color: #2b91af;">ManageTeamDAL</span>(); rptTeamInfo.DataSource = manageTeamDAL.GetGroupsByManagerID(<span style="color: #2b91af;">BUSessionUtility</span>.BUSessionContainer.UserName); rptTeamInfo.DataBind(); } <span style="color: blue;">protected void </span>btnLogOut_Click(<span style="color: blue;">object </span>sender, <span style="color: #2b91af;">EventArgs </span>e) { <span style="color: #2b91af;">BUSessionUtility</span>.BUSessionContainer.UserName = <span style="color: blue;">string</span>.Empty; <span style="color: #2b91af;">BUSessionUtility</span>.BUSessionContainer.UserType = <span style="color: blue;">string</span>.Empty; Response.Redirect(<span style="color: #a31515;">"~/LoginUI.aspx"</span>); } <span style="color: blue;">protected void </span>rptTeamInfo_ItemDataBound(<span style="color: blue;">object </span>sender, <span style="color: #2b91af;">RepeaterItemEventArgs </span>e) { <span style="color: #2b91af;">DropDownList </span>ddlUserList = (<span style="color: #2b91af;">DropDownList</span>)(e.Item.FindControl(<span style="color: #a31515;">"ddlUserList"</span>)); <span style="color: #2b91af;">ManageTeamDAL </span>manageTeamDAL = <span style="color: blue;">new </span><span style="color: #2b91af;">ManageTeamDAL</span>(); ddlUserList.DataSource = manageTeamDAL.GetUsersByManagerID(<span style="color: #2b91af;">BUSessionUtility</span>.BUSessionContainer.UserName); ddlUserList.DataTextField = <span style="color: #a31515;">"id"</span>; ddlUserList.DataValueField = <span style="color: #a31515;">"id"</span>; ddlUserList.DataBind(); <span style="color: #2b91af;">Repeater </span>rptUserInfo = (<span style="color: #2b91af;">Repeater</span>)(e.Item.FindControl(<span style="color: #a31515;">"rptUserInfo"</span>)); <span style="color: blue;">var </span>row = e.Item.DataItem; rptUserInfo.DataSource = manageTeamDAL.GetUsersByAssignedTeamID(((<span style="color: #2b91af;">team_info</span>)(row)).team_id); rptUserInfo.DataBind(); } <span style="color: blue;">protected void </span>rptTeamInfo_ItemCommand(<span style="color: blue;">object </span>source, <span style="color: #2b91af;">RepeaterCommandEventArgs </span>e) { <span style="color: blue;">if </span>(e.CommandName == <span style="color: #a31515;">"select"</span>) { <span style="color: #2b91af;">ImageButton </span>imgAddToTeam = (<span style="color: #2b91af;">ImageButton</span>)e.CommandSource; <span style="color: #2b91af;">DropDownList </span>ddlUserList = (<span style="color: #2b91af;">DropDownList</span>)rptTeamInfo.Items[e.Item.ItemIndex].FindControl(<span style="color: #a31515;">"ddlUserList"</span>); <span style="color: #2b91af;">ManageTeamDAL </span>manageTeamDAL = <span style="color: blue;">new </span><span style="color: #2b91af;">ManageTeamDAL</span>(); manageTeamDAL.AssignUserInTeam(<span style="color: blue;">int</span>.Parse(imgAddToTeam.CommandArgument), ddlUserList.SelectedValue.ToString()); rptTeamInfo.DataSource = manageTeamDAL.GetGroupsByManagerID(<span style="color: #2b91af;">BUSessionUtility</span>.BUSessionContainer.UserName); rptTeamInfo.DataBind(); } } <span style="color: blue;">protected void </span>rptUserInfo_ItemDataBound(<span style="color: blue;">object </span>sender, <span style="color: #2b91af;">RepeaterItemEventArgs </span>e) { <span style="color: #2b91af;">Label </span>lblFirstName = (<span style="color: #2b91af;">Label</span>)(e.Item.FindControl(<span style="color: #a31515;">"lblFirstNameIn"</span>)); <span style="color: #2b91af;">Label </span>lblLastName = (<span style="color: #2b91af;">Label</span>)(e.Item.FindControl(<span style="color: #a31515;">"lblLastNameIn"</span>)); <span style="color: #2b91af;">Label </span>lblUserID = (<span style="color: #2b91af;">Label</span>)(e.Item.FindControl(<span style="color: #a31515;">"lblUserIDIn"</span>)); <span style="color: #2b91af;">Label </span>lblUserType = (<span style="color: #2b91af;">Label</span>)(e.Item.FindControl(<span style="color: #a31515;">"lblUserTypeIn"</span>)); <span style="color: #2b91af;">LinkButton </span>lnkUserDelete = (<span style="color: #2b91af;">LinkButton</span>)(e.Item.FindControl(<span style="color: #a31515;">"lnkUserDelete"</span>)); <span style="color: blue;">var </span>row = e.Item.DataItem; lblFirstName.Text = ((<span style="color: #2b91af;">user_info</span>)(row)).f_name; lblLastName.Text = ((<span style="color: #2b91af;">user_info</span>)(row)).l_name; lblUserID.Text = ((<span style="color: #2b91af;">user_info</span>)(row)).id; lblUserType.Text = ((<span style="color: #2b91af;">user_info</span>)(row)).user_type; lnkUserDelete.CommandArgument = ((<span style="color: #2b91af;">user_info</span>)(row)).id; } <span style="color: blue;">protected void </span>lnkUserDelete_Click(<span style="color: blue;">object </span>sender, <span style="color: #2b91af;">EventArgs </span>e) { <span style="color: #2b91af;">ManageTeamDAL </span>manageTeamDAL = <span style="color: blue;">new </span><span style="color: #2b91af;">ManageTeamDAL</span>(); manageTeamDAL.DeleteUserformTeam(((<span style="color: #2b91af;">LinkButton</span>)(sender)).CommandArgument); rptTeamInfo.DataSource = manageTeamDAL.GetGroupsByManagerID(<span style="color: #2b91af;">BUSessionUtility</span>.BUSessionContainer.UserName); rptTeamInfo.DataBind(); } } } |
Not all codes are important here and I will escape the data binding part as its not the focus of today’s topic. Now I will focus what we should do to perform our basic task.
first of all we have to do one most important thing *** MAKE
EnableViewState="false" *** If ViewState is in true condition your are not going to handle OnItemCommand event which will significantly react for your particular row’s activity.
<asp:Repeater runat=”server” ID=”rptTeamInfo” OnItemDataBound=”rptTeamInfo_ItemDataBound” OnItemCommand=”rptTeamInfo_ItemCommand”>
<ItemTemplate>
<asp:ImageButton id=”imgAddToTeam” CommandName=”select” CommandArgument=’<%# Eval(“team_id”) %>‘ ImageUrl=”images/Add_to_team.png” runat=”server” style=”margin:10px;” align=”right”></asp:ImageButton>
<asp:DropDownList ID=”ddlUserList” runat=”server”>
</asp:DropDownList>
</ItemTemplate>
</asp:Repeater>
The event handler “rptTeamInfo_ItemCommand” for the the event “OnItemCommand” is as bellow.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<span style="color: blue;">protected void </span>rptTeamInfo_ItemCommand(<span style="color: blue;">object </span>source, <span style="color: #2b91af;">RepeaterCommandEventArgs </span>e) { <span style="color: blue;">if </span>(e.CommandName == <span style="color: #a31515;">"select"</span>) { <span style="color: #2b91af;">ImageButton </span>imgAddToTeam = (<span style="color: #2b91af;">ImageButton</span>)e.CommandSource; <span style="color: #2b91af;">DropDownList </span>ddlUserList = (<span style="color: #2b91af;">DropDownList</span>)rptTeamInfo.Items[e.Item.ItemIndex].FindControl(<span style="color: #a31515;">"ddlUserList"</span>); <span style="color: #2b91af;">ManageTeamDAL </span>manageTeamDAL = <span style="color: blue;">new </span><span style="color: #2b91af;">ManageTeamDAL</span>(); manageTeamDAL.AssignUserInTeam( <span style="color: blue;">int</span>.Parse(imgAddToTeam.CommandArgument),ddlUserList.SelectedValue.ToString() ); rptTeamInfo.DataSource = manageTeamDAL.GetGroupsByManagerID(<span style="color: #2b91af;">BUSessionUtility</span>.BUSessionContainer.UserName); rptTeamInfo.DataBind(); } } |
We are passing the “CommandName” and “CommandArgument” through our image button which will check the command name in code behind and act with the command argument parameter.
We can get our ImageButton and DropdownList is as bellow from our code behind.
1 2 3 4 5 |
<span style="color: #2b91af;">ImageButton </span>imgAddToTeam = (<span style="color: #2b91af;">ImageButton</span>)e.CommandSource; <span style="color: #2b91af;">DropDownList </span>ddlUserList = (<span style="color: #2b91af;">DropDownList</span>)rptTeamInfo.Items[e.Item.ItemIndex].FindControl(<span style="color: #a31515;">"ddlUserList"</span>); |
And selet the value of dropdown as bellow.
1 2 3 |
ddlUserList.SelectedValue |
In this way we can accomplish our task regarding the repeater row’s control manipulation.
Thats all for today.
BYE