Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Building Controls > UserControl... where is the clientID on the client side?

Reply
Thread Tools

UserControl... where is the clientID on the client side?

 
 
Monty
Guest
Posts: n/a
 
      06-21-2007
[ASP.Net 2.0, WAP, Atlas]

I have a custom usercontrol that looks something like this:

<%@ Control Language="vb" AutoEventWireup="false"
Codebehind="ItemPicker.ascx.vb" Inherits="myNS.ItemPicker" %>
<div runat=server id=divMain style="text-align:justify; overflow-x:hidden;">
<div id="divItemList" class="ItemPickerList" runat="server">
<asp:Repeater ID="rprItems" runat="server">
<ItemTemplate>
<div class=ItemPickerItem id='<%#me.uniqueID
%>_<%#Container.DataItem("ItemID")%>'><%#Container .DataItem("Description")%></div>
</ItemTemplate>
</asp:Repeater>
</div>
</div>

In the Page_Load of this control, Me.ClientID =
"ctl00_ContentPlaceHolder1_ItemPicker1". However, when I look at the page
that is rendered, there is no element that has
"ctl00_ContentPlaceHolder1_ItemPicker1" as an ID. There is, of course,
"ctl00_ContentPlaceHolder1_ItemPicker1_divMain ". I kinda thought if a
control had a client ID it would, uhhh, have that ID on the client. I tried
wrapping it all in a DIV and setting the DIV ID like so: <div
id='<%=me.clientID%>', but that was a no-go of course. The only reason I
care is because in the page that hosts this control I am registering the
control for AsyncPostBack (like
ScriptManager.RegisterAsyncPostBackControl(ItemPic ker1)). In the
__doPostBack event, it is looking for a control with the ID of
"ctl00_ContentPlaceHolder1_ItemPicker1", but of course can't find it. Any
suggestions? TIA!

(Bonus question: is there a MS newsgroup for Atlas?)






 
Reply With Quote
 
 
 
 
Walter Wang [MSFT]
Guest
Posts: n/a
 
      06-22-2007
Hi Monty,

I don't think you can use RegisterAsyncPostBackControl on a UserControl
instance. A control has ClientID property, doesn't necessary mean the id
will always be used on the rendered page. For a UserControl, by default it
only acts as a naming container (implements INamingContainer interface).
Child controls inside a naming container will use parent's ClientID as
prefix.

When a control is registered via RegisterAsyncPostBackControl, it must
occur in the posted form data. Usually a control that will post the form
can be used with it.

I also noticed you're using me.UniqueID to generate the client id of the
div; I think you should use ClientID (the difference between UniqueID and
ClientID is the separator used to compose the result from ID property).


There's no dedicated newsgroup for ASP.NET AJAX now, you can just post in
asp.net related newsgroups.


Regards,
Walter Wang ((E-Mail Removed), remove 'online.')
Microsoft Online Community Support

==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Difference between ID, ClientID and UniqueID? Henri ASP .Net 2 05-18-2004 12:18 AM
How do I use the ClientID with a dropdownlist? jm ASP .Net 2 02-12-2004 05:05 AM
Databinding by ClientID oafyuf ASP .Net 1 10-24-2003 07:34 PM
[ASP. NET VB .NET] clientID and ClientID Maras ASP .Net 1 10-15-2003 02:04 PM
Odd clientID behaviour John ASP .Net 0 08-20-2003 01:12 PM



Advertisments