Web Forms :: Placeholder FindControl For Dynamically Created Objects?
Dec 28, 2010txtbox.TextMode = TextBoxMode.MultiLine;
View 4 Repliestxtbox.TextMode = TextBoxMode.MultiLine;
View 4 Replies My problem is as follows. I have a custom GridView control where I generate the Template fields for each column. I'm using someone elses class that extends the Itemplate and returns lables for ItemTemplate, and TextBoxes for EditTemplate.
I need this in order to implement bulk edit for the gridview where users press button Edit and all fields become textboxes, they can then change the values, and click Update button at which point I need to be able to retrieve the values from the TextBoxes in these Template Fields.
What I have tried thus far: when user clicks Edit button, my dynamic code builds the columns and specifies that the Template field is an EditTemplate, it then adds these columns to the grid view. The gridview shows the textboxes with all values retrieved from sqldatasource.
When I press the Update button, the page does a postback, as I can see Page_Load event fire, I check for a flag that I previously set when the Edit button was pressed (I store it's value in View State) and call the Update method.
In it I iterate throught the gridview rows collection, check that the RowType of each row is DataRow and call GridView.UpdateRow(i, false), passing each rows index to the UpdateRow method.At this point I have tried everything I can to find the values stored in the textboxes, but I cannot find any of the textbox controls.
I've tried using the current row's FindControl method and specifying the name of the textbox field,I've tried using Request.Params method where I can tried passing the client id, as it seen in the View Source of the page such as this
Request.Params["grid1$gvData$ctl02$MMCODE"]
Still no luck, I've tried going up an down the Row's cells, controls collections, it seem to list the counts for rows correctly, the same goes for the amount of cells for each row, but at no point was I able to actually locate any controls such as textboxes or anything else and retrieve any values from them.
using VS 2005,Ajax and master pages This is how i'm adding controls to placeholder
[Code]....
here is code to read value but it returns null
TextBox text = PlaceHold1.FindControl("TxtSlotName0") as TextBox;
aspx page follows
<%@ Page Language="C#" MasterPageFile="~/Admin.master" AutoEventWireup="true" CodeFile="SlotAlloc.aspx.cs" Inherits="SlotAlloc" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<table align="center" width="50%">
<tr>
<td align="center" colspan="2">
<asp:Label ID="LblErr" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td align="right" width="50%">
<asp:Label ID="LblType" runat="server" Text="Type"></asp:Label></td>
<td style="width: 811px">
<asp:DropDownList ID="DropType" runat="Server">
</asp:DropDownList></td>
</tr>
<tr>
<td align="right">
<asp:Label ID="LblLogin" runat="server" Text="Login"></asp:Label>
</td>
<td style="width: 811px">
<asp:DropDownList ID="DropinHours" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
<asp:ListItem>5</asp:ListItem>
<asp:ListItem>6</asp:ListItem>
<asp:ListItem>7</asp:ListItem>
<asp:ListItem>8</asp:ListItem>
<asp:ListItem>9</asp:ListItem>
<asp:ListItem>10</asp:ListItem>
<asp:ListItem>11</asp:ListItem>
<asp:ListItem>12</asp:ListItem>
<asp:ListItem>13</asp:ListItem>
<asp:ListItem>14</asp:ListItem>
<asp:ListItem>15</asp:ListItem>
<asp:ListItem>16</asp:ListItem>
<asp:ListItem>17</asp:ListItem>
<asp:ListItem>18</asp:ListItem>
<asp:ListItem>19</asp:ListItem>
<asp:ListItem>20</asp:ListItem>
<asp:ListItem>21</asp:ListItem>
<asp:ListItem>22</asp:ListItem>
<asp:ListItem>23</asp:ListItem>
<asp:ListItem>24</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropInMinutes" runat="server">
<asp:ListItem>01</asp:ListItem>
<asp:ListItem>02</asp:ListItem>
<asp:ListItem>03</asp:ListItem>
<asp:ListItem>04</asp:ListItem>
<asp:ListItem>05</asp:ListItem>
<asp:ListItem>06</asp:ListItem>
<asp:ListItem>07</asp:ListItem>
<asp:ListItem>08</asp:ListItem>
<asp:ListItem>09</asp:ListItem>
<asp:ListItem>10</asp:ListItem>
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>12</asp:ListItem>
<asp:ListItem>13</asp:ListItem>
<asp:ListItem>14</asp:ListItem>
<asp:ListItem>15</asp:ListItem>
<asp:ListItem>16</asp:ListItem>
<asp:ListItem>17</asp:ListItem>
<asp:ListItem>18</asp:ListItem>
<asp:ListItem>19</asp:ListItem>
<asp:ListItem>20</asp:ListItem>
<asp:ListItem>21</asp:ListItem>
<asp:ListItem>22</asp:ListItem>
<asp:ListItem>23</asp:ListItem>
<asp:ListItem>24</asp:ListItem>
<asp:ListItem>25</asp:ListItem>
<asp:ListItem>26</asp:ListItem>
<asp:ListItem>27</asp:ListItem>
<asp:ListItem>28</asp:ListItem>
<asp:ListItem>29</asp:ListItem>
<asp:ListItem>30</asp:ListItem>
<asp:ListItem>31</asp:ListItem>
<asp:ListItem>32</asp:ListItem>
<asp:ListItem>33</asp:ListItem>
<asp:ListItem>34</asp:ListItem>
<asp:ListItem>35</asp:ListItem>
<asp:ListItem>36</asp:ListItem>
<asp:ListItem>37</asp:ListItem>
<asp:ListItem>38</asp:ListItem>
<asp:ListItem>39</asp:ListItem>
<asp:ListItem>40</asp:ListItem>
<asp:ListItem>41</asp:ListItem>
<asp:ListItem>42</asp:ListItem>
<asp:ListItem>43</asp:ListItem>
<asp:ListItem>44</asp:ListItem>
<asp:ListItem>45</asp:ListItem>
<asp:ListItem>46</asp:ListItem>
<asp:ListItem>47</asp:ListItem>
<asp:ListItem>48</asp:ListItem>
<asp:ListItem>49</asp:ListItem>
<asp:ListItem>50</asp:ListItem>
<asp:ListItem>51</asp:ListItem>
<asp:ListItem>52</asp:ListItem>
<asp:ListItem>53</asp:ListItem>
<asp:ListItem>54</asp:ListItem>
<asp:ListItem>55</asp:ListItem>
<asp:ListItem>56</asp:ListItem>
<asp:ListItem>57</asp:ListItem>
<asp:ListItem>58</asp:ListItem>
<asp:ListItem>59</asp:ListItem>
<asp:ListItem>60</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropInSeconds" runat="server">
<asp:ListItem>01</asp:ListItem>
<asp:ListItem>02</asp:ListItem>
<asp:ListItem>03</asp:ListItem>
<asp:ListItem>04</asp:ListItem>
<asp:ListItem>05</asp:ListItem>
<asp:ListItem>06</asp:ListItem>
<asp:ListItem>07</asp:ListItem>
<asp:ListItem>08</asp:ListItem>
<asp:ListItem>09</asp:ListItem>
<asp:ListItem>10</asp:ListItem>
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>12</asp:ListItem>
<asp:ListItem>13</asp:ListItem>
<asp:ListItem>14</asp:ListItem>
<asp:ListItem>15</asp:ListItem>
<asp:ListItem>16</asp:ListItem>
<asp:ListItem>17</asp:ListItem>
<asp:ListItem>18</asp:ListItem>
<asp:ListItem>19</asp:ListItem>
<asp:ListItem>20</asp:ListItem>
<asp:ListItem>21</asp:ListItem>
<asp:ListItem>22</asp:ListItem>
<asp:ListItem>23</asp:ListItem>
<asp:ListItem>24</asp:ListItem>
<asp:ListItem>25</asp:ListItem>
<asp:ListItem>26</asp:ListItem>
<asp:ListItem>27</asp:ListItem>
<asp:ListItem>28</asp:ListItem>
<asp:ListItem>29</asp:ListItem>
<asp:ListItem>30</asp:ListItem>
<asp:ListItem>31</asp:ListItem>
<asp:ListItem>32</asp:ListItem>
<asp:ListItem>33</asp:ListItem>
<asp:ListItem>34</asp:ListItem>
<asp:ListItem>35</asp:ListItem>
<asp:ListItem>36</asp:ListItem>
<asp:ListItem>37</asp:ListItem>
<asp:ListItem>38</asp:ListItem>
<asp:ListItem>39</asp:ListItem>
<asp:ListItem>40</asp:ListItem>
<asp:ListItem>41</asp:ListItem>
<asp:ListItem>42</asp:ListItem>
<asp:ListItem>43</asp:ListItem>
<asp:ListItem>44</asp:ListItem>
<asp:ListItem>45</asp:ListItem>
<asp:ListItem>46</asp:ListItem>
<asp:ListItem>47</asp:ListItem>
<asp:ListItem>48</asp:ListItem>
<asp:ListItem>49</asp:ListItem>
<asp:ListItem>50</asp:ListItem>
<asp:ListItem>51</asp:ListItem>
<asp:ListItem>52</asp:ListItem>
<asp:ListItem>53</asp:ListItem>
<asp:ListItem>54</asp:ListItem>
<asp:ListItem>55</asp:ListItem>
<asp:ListItem>56</asp:ListItem>
<asp:ListItem>57</asp:ListItem>
<asp:ListItem>58</asp:ListItem>
<asp:ListItem>59</asp:ListItem>
<asp:ListItem>60</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="Lbllogout" runat="server" Text="Log Out"></asp:Label>
</td>
<td style="width: 811px">
<asp:DropDownList ID="DropOutHours" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
<asp:ListItem>5</asp:ListItem>
<asp:ListItem>6</asp:ListItem>
<asp:ListItem>7</asp:ListItem>
<asp:ListItem>8</asp:ListItem>
<asp:ListItem>9</asp:ListItem>
<asp:ListItem>10</asp:ListItem>
<asp:ListItem>11</asp:ListItem>
<asp:ListItem>12</asp:ListItem>
<asp:ListItem>13</asp:ListItem>
<asp:ListItem>14</asp:ListItem>
<asp:ListItem>15</asp:ListItem>
<asp:ListItem>16</asp:ListItem>
<asp:ListItem>17</asp:ListItem>
<asp:ListItem>18</asp:ListItem>
<asp:ListItem>19</asp:ListItem>
<asp:ListItem>20</asp:ListItem>
<asp:ListItem>21</asp:ListItem>
<asp:ListItem>22</asp:ListItem>
<asp:ListItem>23</asp:ListItem>
<asp:ListItem>24</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropOutMinutes" runat="server">
<asp:ListItem>01</asp:ListItem>
<asp:ListItem>02</asp:ListItem>
<asp:ListItem>03</asp:ListItem>
<asp:ListItem>04</asp:ListItem>
<asp:ListItem>05</asp:ListItem>
<asp:ListItem>06</asp:ListItem>
<asp:ListItem>07</asp:ListItem>
<asp:ListItem>08</asp:ListItem>
<asp:ListItem>09</asp:ListItem>
<asp:ListItem>10</asp:ListItem>
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>12</asp:ListItem>
<asp:ListItem>13</asp:ListItem>
<asp:ListItem>14</asp:ListItem>
<asp:ListItem>15</asp:ListItem>
<asp:ListItem>16</asp:ListItem>
<asp:ListItem>17</asp:ListItem>
<asp:ListItem>18</asp:ListItem>
<asp:ListItem>19</asp:ListItem>
<asp:ListItem>20</asp:ListItem>
<asp:ListItem>21</asp:ListItem>
<asp:ListItem>22</asp:ListItem>
<asp:ListItem>23</asp:ListItem>
<asp:ListItem>24</asp:ListItem>
<asp:ListItem>25</asp:ListItem>
<asp:ListItem>26</asp:ListItem>
<asp:ListItem>27</asp:ListItem>
<asp:ListItem>28</asp:ListItem>
<asp:ListItem>29</asp:ListItem>
<asp:ListItem>30</asp:ListItem>
<asp:ListItem>31</asp:ListItem>
<asp:ListItem>32</asp:ListItem>
<asp:ListItem>33</asp:ListItem>
<asp:ListItem>34</asp:ListItem>
<asp:ListItem>35</asp:ListItem>
<asp:ListItem>36</asp:ListItem>
<asp:ListItem>37</asp:ListItem>
<asp:ListItem>38</asp:ListItem>
<asp:ListItem>39</asp:ListItem>
<asp:ListItem>40</asp:ListItem>
<asp:ListItem>41</asp:ListItem>
<asp:ListItem>42</asp:ListItem>
<asp:ListItem>43</asp:ListItem>
<asp:ListItem>44</asp:ListItem>
<asp:ListItem>45</asp:ListItem>
<asp:ListItem>46</asp:ListItem>
<asp:ListItem>47</asp:ListItem>
<asp:ListItem>48</asp:ListItem>
<asp:ListItem>49</asp:ListItem>
<asp:ListItem>50</asp:ListItem>
<asp:ListItem>51</asp:ListItem>
<asp:ListItem>52</asp:ListItem>
<asp:ListItem>53</asp:ListItem>
<asp:ListItem>54</asp:ListItem>
<asp:ListItem>55</asp:ListItem>
<asp:ListItem>56</asp:ListItem>
<asp:ListItem>57</asp:ListItem>
<asp:ListItem>58</asp:ListItem>
<asp:ListItem>59</asp:ListItem>
<asp:ListItem>60</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropOutSeconds" runat="server">
<asp:ListItem>01</asp:ListItem>
<asp:ListItem>02</asp:ListItem>
<asp:ListItem>03</asp:ListItem>
<asp:ListItem>04</asp:ListItem>
<asp:ListItem>05</asp:ListItem>
<asp:ListItem>06</asp:ListItem>
<asp:ListItem>07</asp:ListItem>
<asp:ListItem>08</asp:ListItem>
<asp:ListItem>09</asp:ListItem>
<asp:ListItem>10</asp:ListItem>
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>12</asp:ListItem>
<asp:ListItem>13</asp:ListItem>
<asp:ListItem>14</asp:ListItem>
<asp:ListItem>15</asp:ListItem>
<asp:ListItem>16</asp:ListItem>
<asp:ListItem>17</asp:ListItem>
<asp:ListItem>18</asp:ListItem>
<asp:ListItem>19</asp:ListItem>
<asp:ListItem>20</asp:ListItem>
<asp:ListItem>21</asp:ListItem>
<asp:ListItem>22</asp:ListItem>
<asp:ListItem>23</asp:ListItem>
<asp:ListItem>24</asp:ListItem>
<asp:ListItem>25</asp:ListItem>
<asp:ListItem>26</asp:ListItem>
<asp:ListItem>27</asp:ListItem>
<asp:ListItem>28</asp:ListItem>
<asp:ListItem>29</asp:ListItem>
<asp:ListItem>30</asp:ListItem>
<asp:ListItem>31</asp:ListItem>
<asp:ListItem>32</asp:ListItem>
<asp:ListItem>33</asp:ListItem>
<asp:ListItem>34</asp:ListItem>
<asp:ListItem>35</asp:ListItem>
<asp:ListItem>36</asp:ListItem>
<asp:ListItem>37</asp:ListItem>
<asp:ListItem>38</asp:ListItem>
<asp:ListItem>39</asp:ListItem>
<asp:ListItem>40</asp:ListItem>
<asp:ListItem>41</asp:ListItem>
<asp:ListItem>42</asp:ListItem>
<asp:ListItem>43</asp:ListItem>
<asp:ListItem>44</asp:ListItem>
<asp:ListItem>45</asp:ListItem>
<asp:ListItem>46</asp:ListItem>
<asp:ListItem>47</asp:ListItem>
<asp:ListItem>48</asp:ListItem>
<asp:ListItem>49</asp:ListItem>
<asp:ListItem>50</asp:ListItem>
<asp:ListItem>51</asp:ListItem>
<asp:ListItem>52</asp:ListItem>
<asp:ListItem>53</asp:ListItem>
<asp:ListItem>54</asp:ListItem>
<asp:ListItem>55</asp:ListItem>
<asp:ListItem>56</asp:ListItem>
<asp:ListItem>57</asp:ListItem>
<asp:ListItem>58</asp:ListItem>
<asp:ListItem>59</asp:ListItem>
<asp:ListItem>60</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="LblNoofSlots" runat="Server" Text="Number Of Slots"></asp:Label></td>
<td style="width: 811px">
<asp:TextBox ID="TxtSlots" runat="server" AutoPostBack="True"></asp:TextBox>
</td>
</tr>
</table>
<asp:UpdatePanel id="UpdatePanel1" runat="server">
<contenttemplate>
<TABLE width="80%" align=center><TR><TD align=center colSpan=4> <asp:Button id="BtnGenerate" onclick="Button1_Click" runat="server" Text="GENERATE"></asp:Button></TD></TR><TR><TD style="TEXT-ALIGN: center" width="20%">Slot Name</TD><TD style="TEXT-ALIGN:
center" width="30%">OnTime/Time period</TD><TD style="TEXT-ALIGN: center" width="20%">Time From</TD><TD style="TEXT-ALIGN: center" width="30%">Time To</TD></TR><TR><TD colSpan=4><asp:PlaceHolder id="PlaceHold1" runat="server"><br/><br/></asp:PlaceHolder> </TD></TR></TABLE>
</contenttemplate>
</asp:UpdatePanel>
<table align="center" width="80%">
<tr>
<td align="center">
<asp:Button ID="BtnSubmit" runat="server" OnClick="BtnSubmit_Click" Text="Submit" />
</td>
</tr>
</table>
</asp:Content>
Example code:
var div = new HtmlGenericControl("div");
div.Controls.Add(new Literal() { ID = "litSomeLit" });
var lit = (Literal)div.FindControl("litSomeLit");
Assert.IsNotNull(lit);
This code fails the assert, because lit is null. Debugging shows that div.Controls definitely contains a literal with ID of "litSomeLit." My questions are "Why?" and "Is there any way to get a control of a specific ID without doing a recursive search of div.Controls[] by hand one element at a time?"
The reason I'm doing things this way is that my actual application is not so straightforward- a method I'm writing is given a complex control with several subcontrols in a number of possible configurations. I need to access a specific control several layers down (eg, the control with ID "txtSpecificControl" might be at StartingControl.Controls[0].Controls[2].Controls[1].Controls[3]). Normally I could just do FindControl("txtSpecificControl"), but that does not seem to work when the controls were just dynamically created (as in the above example code).
Can a placeholder control be created dynamically such that you can add controls to it later on?
PlaceHolder ph_grid = new PlaceHolder();
I have a table where each cell contains an ImageButton, with an iterative ID:
[Code]....
I am then trying to assign a URL to each imagebutton dynamically in a separate code file
[Code]....
Everything compiles, but when I run this I throw a Null Reference Exception: {"Object reference not set to an instance of an object."}
I'm creating an quiz application which queries the database and extracts the questions and choices. I use dynamically created controls such as a checkbox list and fill the values dynamically. How do I do this? Right now I have these functions:
array_random_init(); this creates a 10 element integer array from 1-20 - extract_question(i): this extracts a question indexed at i in DB, I created the controls and set the appropriate text in this function. - validate_question(i); this is called by button_click and validates the question i according to DB.
I understand I have to recreate the controls in Page_init on postback, but what should it look like? Do I need to add "if IsPostBack" in page_init, or do I create the controls in page_init() and reset their properties in page_load when I use extract_question(i)? Also, I cannot seem to clear the selected boxes on postback, I added page directive "enableviewstate=false" but it doesn't work.
I have a website that sales associates access to view account information with clients. S.A's can only view information for accounts that they are tied to. Some clients have more than one account, S.A's can be tied to more than one account, but not all accounts of one client need to be tied to one S.A.
On the account info pages, I have account numbers (dynamically displayed labels) displayed of other accounts that the account client is associated with, which the S.A's can see. I'm modding this so that if the S.A has viewing permissions of any of the other accounts on that list of accounts, that instead of a label being displayed, a button directing them to that account page will display instead. In order for this to work, I have to attach a security function to the button, otherwise the page will blow out on the S.A's.
So I'm running a piece that is displaying a button instead of a label, which is working fine. My problem is when I try to attach the security event to the dynamically displayed buttons. It seems that the page just posts back and doesn't execute my code at all.
On my Page_Load, I'm running this after the buttons and labels are displayed:
For x = 0 to tblAccountList.Rows.Count - 1
'use a try to target the button, use catch to handle if it's instead a label, only one cell per row.
Try
Dim accountLink as Button = tblAccountList.Rows(x).Controls(0)
Addhandler accountLink.Click, AddressOf Me.PermissionViewCheck
Catch ex as InvalidCastException
Continue For
End Try
Next
I don't have any code checking for postbacks or anything like that, but the "PermissionViewCheck" event never fires and just reposts the page.
I'm trying to get dynamically generated control by id with FindControl function, but it doesn't return it
here's short version of code when I generate controls, it is basically in a loop to have number of CheckBoxes depending on inputs
[Code]....
[Code]....
[Code]....
[Code]....
I have a Placeholder control on Employee Main Menu. Several SQL Data sources are run at page load in order to notify employees that something is due. Each "something is due" message is loaded into a unique label. Therefore the Placeholder could have several labels in them. For clarity's sake I'd like them separated by line breaks. However I understand from reading a previous forum item that "< /br>" are ignored. How can I embed a line break when PlaceHolder_Msg.Controls.Count > 1
View 2 RepliesI have an asp:table control that I construct dynamically. I place a few textboxes in it within a for loop and assign their IDs in code. I'll include an abbreviated code fragment showing how I'm doing this:
[Code]....
The page then displays correctly and the ID is set correctly when I view the source, but when I try to access the textbox later when the form is submitted the call to FindControl(idStr) returns null no matter what I do.
I have basically something like this:
<asp:datagrid id="DGrid" runat="server" AutoGenerateColumns="false">
<asp:TemplateColumn HeaderText="Stuff">
<ItemTemplate>
<asp:PlaceHolder id="PH" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</asp:datagrid>
I need to add a Button to the PlaceHolder depending on the values of the data I am binding. At the moment I am adding the Button after the data is bound in Page_Load. The problem is that the data binding methods are not called in postbacks, so the Button disappears when I click on it.
Problem is that I need to know some attributes of the grid item to create the Button, so I cannot create it before the data has been bound.
I'm creating an ASP.NET control dynamically based on a value selected in a dropdown; for instance the field can be a textbox or a checkbox (for now), and then it gets added to a placeholder control. However, I'm unsure how to retrieve the value - using the placeholder's FindControl method returns null although I'm specifying the ID when I create the control.
Here's my code:
[code]....
I have a PlaceHolder control inside of a ListView that I am using to render controls from my code behind. The code below adds the controls:
TextBox tb = new TextBox();
tb.Text = quest.Value;
tb.ID = quest.ShortName.Replace(" ", "");
((PlaceHolder)e.Item.FindControl("ph_QuestionInput")).Controls.Add(tb);
I am using the following code to retrieve the values that have been entered into the TextBox:
foreach (ListViewDataItem di in lv_Questions.Items)
{
int QuestionId = Convert.ToInt32(((HiddenField)di.FindControl("hf_QuestionId")).Value);
Question quest = dc.Questions.Single(q => q.QuestionId == QuestionId);
TextBox tb = ((TextBox)di.FindControl(quest.ShortName.Replace(" ","")));
//tb is always null!
}
But it never finds the control. I've looked at the source code for the page and the control i want has the id:
ctl00_cphContentMiddle_lv_Questions_ctrl0_Numberofacres
For some reason when I look at the controls in the ListViewDataItem it has the ClientID:
ctl00_cphContentMiddle_lv_Questions_ctrl0_ctl00
Why would it be changing Numberofacres to ctl00? Is there any way to work around this?
UPDATE:
Just to clarify, I am databinding my ListView in the Page_Init event. I then create the controls in the ItemBound event for my ListView. But based on what @Womp and MSDN are saying the controls won't actually be created until after the Load event (which is after the Page_Init event) and therefore are not in ViewState? Does this sound correct?
If so am I just SOL when it comes to retrieving the values in my dynamic controls from my OnClick event?
UPDATE 2:
So i changed the code i had in my Page_Init event from:
protected void Page_Init(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//databind lv_Questions
}
}
to:
protected void Page_Init(object sender, EventArgs e)
{
//databind lv_Questions
}
And it fixed my problem. Still a little confused as to why I want to databind regardless of whether it's a postback or not but the issue is resolved.
if Panel have any aspnet control,panel not popups.otherwise working.whats wrong here ? is it impossible ?
[Code]....
I know the content palcehlder does not have a size ,I have a masterpage and content page, the master page has a table with a header, content area, and footer, header and footer are fixed size, content area is 100%. As the user sizes the browser the content area grows and shrinks and the footer stays at the
bottom of the browser window - perfect!
Problem: The contentpalceholder does not grow to fill the available content area. Now, the contentplaceholder gets its size from its contents, which in this case is a div holding a silverlight object.I was thinking I could hook the master or child page's re-size event and somehow pass that info onto the SL object, but as it turns out (and I'm surprised I never knew this) there is no aps.net page re-size event! (really?, wow.)
So is there a way to get a SL object hosted on a master page to size itself based on the size of the browser window?Or more generally, a way to size the contents (like a div or panel) of a contentplaceholder based on the browser? on a standard aspx page (not a master page) I CAN get the SL object to size itself based on the broswer, the problem seems to come from the fact that I'm hosting the SL object in a content placeholder.
I guess I could 'unroll' the master page into several standalone pages and have it work, but the menu is on the master page and I'm used to using them, plus it's already done...<sigh>
I have a user control which I am adding to the page dynamically. UserControl is being added "n" times in PlaceHolder.
"n" depend on the number of records pulled from the database.
[Code]....
All the UserControls are added in a single column. (Issue, if n = 50, it looks very poor since half of the page is empty)
I want to add in multiple columns (eg if n=30; 10 in each column).
I am not using GridView or MultiView because user actually does need to modify any data.
I am using list view to display the the data but i am getting an error like An item placeholder must be specified on ListView 'ListView1'. Specify an item placeholder by setting a control's ID property to "itemPlaceholder". The item placeholder control must also specify runat="server.Even i have specified the itemplaceholder id but no use still same error.
[Code]....
I'm creating 14 textboxes for every day in a month and user can select the month so i have o create them dynamically. But i can't reach the values in the textboxes.
When i don't create them dynamically like
<asp:TextBox ID= "TextBox1" name="TextBox1"> </asp:TextBox>
I can get the value from the C# side by using the
((TextBox)Page.Form.FindControl("TextBox1")).Text
However this moethod doesn't work for the textboxes that i created dynamically. I'm creating them in a loop it's something like;
[Code]....
Then i add the text box to the necessary places at my table.However i can't reach the textboxes when i use the same method
((TextBox)Page.Form.FindControl("!A uniqe ID!"));
It gave a null value...
I have a tree view with checkboxes for leaf nodes. If i click on checkboxes, I am creating some html controls dynamically. And in other static button click event I need to get an ID's of those dynamically created controls.
My Code is:
.aspx
<asp:Panel ID="pnlOuter" runat="server" Visible="false" Width="650px">
<table>
<tr>
<td>
<asp:Label ID="lblQtnrName" runat="server" Text="Questionaire Name"></asp:Label>
<asp:TextBox ID="txtQtnrName" runat="server"></asp:TextBox>...
I have a web user control with dynamic LinkButton think an event in which you assign events to them (LinkButton.Click + = new EventHandler (Method)).The problem is that these events do not run, I did test creating and if you run statically.Why is it??I need to be created dynamically at runtime.For Examples :
for (int i = 0; i <= 5; i++)
{
Button boton = new Button();
[code]...
i have created the dynamic tree view in ASP.NET using C#, but i have to add url's in the dynamically created treeview. can any one give the basic coding for it with example..
View 2 RepliesI have a link button let's say LB1 wherein on click of the LB1 a modalpopupextendar will open up with a textbox where we can enter the message and onclick of Ok button the entered message will be saved. Let's say we have repeated the above steps for thrice. So there will be three rows created in DB. Let's say column name UID is the primary key.Now, I am displaying the each message inside a panel along with Link Button(LB2) which is created dynamically while reading the text. So,The first row will contain
UID:1 Message:Message1
Comments:Comments Link Button(LB2)
The second row will contain
UID:2 Message:Message2
Comments:Comments Link Button(LB2)
The third row will contain
UID:3 Message:Message3
Comments:Comments Link Button(LB2)
When I click on Comments Link Button(LB2) a modalpopupextendar will popup wherein we can enter the comments. Let's say we are clicking on LinkButton of Message 1, a pop up opens and after entering comments and ok button the comments are saved for all the three messages instead of saving it for message 1, i.e I couldn't find the unique id of the message.
[Code]....
I want to copy a placeholder to another placeholder, i know, i can't write somethin like this,
plh_footer = plh_header;
how can i do that?
how to maintain state of placeholder. i have a placeholder in which i add many image controls dynamically but when my page get refresh all controls from placeholder gets removed from it. the enableViewstate of placeholder is set to true.
View 3 Replies