Solved

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

Posted on 2008-06-20
4
240 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
Comment Utility
instead of Page.FindControl("EmpListView_ctrl0_DetailButton") try:
EmpListView.FindControl("DetailButton");

Open in new window

0
 
LVL 21

Expert Comment

by:naspinski
Comment Utility
more completely
Button DetailButton = (Button)EmpListView.FindControl("DetailButton");

Open in new window

0
 

Author Comment

by:eddiecon
Comment Utility
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
Comment Utility
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

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Sometimes in DotNetNuke module development you want to swap controls within the same module definition.  In doing this DNN (somewhat annoyingly) swaps the Skin and Container definitions to the default admin selections.  To get around this you need t…
A quick way to get a menu to work on our website, is using the Menu control and assign it to a web.sitemap using SiteMapDataSource. Example of web.sitemap file: (CODE) Sample code to add to the page menu: (CODE) Running the application, we wi…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

728 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

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now