Solved

ASP.NET - How do I reference a dynamic control from code behind

Posted on 2008-06-20
4
243 Views
Last Modified: 2012-08-14
I have a button (1 of 2) inside a ListViewItem. The definition is:
<ItemTemplate>
<tr class="ItemStyle" style=" background-color: White ">
<td  ondatabinding="ManageButtonText" ID="UserCell" runat="server" align=center Width=180 style="border-bottom: solid 1px #BDF">
<%#Eval("username")%></td>
<td style="padding-left: 6px; padding-right: 3px; border-bottom: solid 1px #BDF">
<asp:Button ID="DetailButton"  OnClick="ButtonClick" CausesValidation=false
runat="server" Width=140 Height="22px" Font-Size=8  Text="View/Edit detailed ratings" />&nbsp;
<asp:Button ID="SummaryButton"  OnClick="ButtonClick" CausesValidation=false
runat="server" Width=140 Height="22px" Font-Size=8 Text="View/Edit summary ratings" />
</td>
</tr>
</ItemTemplate>

The extract in the attached code snippet, from my IE browser's "View Source", shows the ID of my button to be "EmpListView_ctrl0_DetailButton".
But when I try to access the button from code-behind using Page.FindControl("EmpListView_ctrl0_DetailButton"), it returns Nothing.
What am I doing wrong, please?

<table id="EmpListView_Table1" style="margin: 15px; ">
<tr>
<td>
<table id="EmpListView_itemPlaceholderContainer" border="1" cellpadding="4" class="MediumArial " style=" border-collapse: collapse;border-color: #555;
border-style:solid ; border-width:1px; ">
<tr id="EmpListView_Tr2" height="20px" style="font-weight:bold;  background-color: #ddd;">
<th id="EmpListView_Th1" style="border-bottom: solid 1px #333; padding: 5px">Employee Name</th>
<th id="EmpListView_Th2" colspan="2" style="border-bottom: solid 1px #333;">Action</th>
</tr>
<tr class="ItemStyle" style=" background-color: White ">
<td id="EmpListView_ctrl0_UserCell" align="center" width="180" style="border-bottom: solid 1px #BDF">Conradie Eddie</td>
<td style="padding-left: 6px; padding-right: 3px; border-bottom: solid 1px #BDF">
<input type="submit" name="EmpListView$ctrl0$DetailButton" value="View/Edit detailed ratings" id="EmpListView_ctrl0_DetailButton" style="font-size:8pt;height:22px;width:140px;" />&nbsp; 
<input type="submit" name="EmpListView$ctrl0$SummaryButton" value="View/Edit summary ratings" id="EmpListView_ctrl0_SummaryButton" style="font-size:8pt;height:22px;width:140px;" />
</td> 
</tr>
</table>

Open in new window

0
Comment
Question by:eddiecon
  • 3
4 Comments
 
LVL 21

Expert Comment

by:naspinski
ID: 21830055
instead of Page.FindControl("EmpListView_ctrl0_DetailButton") try:
EmpListView.FindControl("DetailButton");

Open in new window

0
 
LVL 21

Expert Comment

by:naspinski
ID: 21830059
more completely
Button DetailButton = (Button)EmpListView.FindControl("DetailButton");

Open in new window

0
 

Author Comment

by:eddiecon
ID: 21830176
Thanks for responding
The button(s) I want to access are inside each Listview item. So I have
EmpListView_ctrl0_Detail
EmpListView_ctrl1_Detail
etc
I have the "row" number 0/1/2 etc, now I just need the right syntax to refernce the button
Could you help, please?
0
 
LVL 21

Accepted Solution

by:
naspinski earned 50 total points
ID: 21830279
if you have the row number, thats easy.  Remember that asp.net doesn't reference anything by the whole html id that you are using up there, just control IDs.  Call this in your EmpListView_DataBound Event.
Button DetailButton = (Button)EmpListView.Items[ROW_NUMBER].FindControl("DetailButton");

Open in new window

0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Web site error 3 50
Google Maps with Webforms 1 29
ASP.NET Built-In Report Creator / Viewer 5 17
Web page design problem 3 10
In an ASP.NET application, I faced some technical problems. In this article, I list them out and show the solutions that I found.  I hope it will be useful. Problem: After closing a pop-up window, the parent page should be refreshed automaticall…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

680 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question