Asp.net Control ID (ClientIDMode) question / interaction with Obout Control failing

I am getting mixed results on different servers from the same code.

I have an obout textbox and an obout calendar that extends the textbox, based on its ID.  They live inside a control.

The name of the text box is, for simplicity:  Start_Date
The obout calendar asks for TextBoxID, so I enter Start_Date.

If i have this code outside of the control, in the main page, it works fine on both servers... but if I have it in the control and it isn't pushing dates to the text field at all... field remains blank.

One thing I found interesting was that if i set the TextBoxID in the calendar to ControlName1$Start_Date, it functions fine on one server, but not the other.

In investigating the output code, i see something interesting...

one server renders the text box's id as:
ControlName1$Start_Date

and the other server as:
ControlName1_Start_Date

I don't see why, but this seems to be causing some issue with the calendar to actually push the clicked date value into the text box.

I tried playing around with ClientIDMode.  Tried all the different settings (Static, etc).  Same results every time.

Any ideas as to what I could be missing here?  Why does one use an underscore, and one use a dollar sign in the ID naming, and is there any way to make this "predictable" (as predictable in clientIDMode didn't seem to affect this)

And any idea why i can't just use the actual text box's ID name "Start_Date" when setting TextBoxId="Start_Date" in the obout calendar?

Thanks for suggestions or tips.  I've spent so much time going in circles on this one.
Robert HamelSenior .NET developerAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Robert HamelSenior .NET developerAuthor Commented:
here is the code used in the Control:

  <obout:OboutTextBox 
runat="server" 
ID="Start_Date" 
Width="100" 
EnableViewState="true" 
AutoCompleteType="Search"  
 />
         
<obout:Calendar 
ID="Calendar1" 
runat="server"        
DatePickerMode="true" 
TextBoxId="Start_Date"  

 />

Open in new window



here is the actual post render source code on one server:
<input 
name="ClassFilter1$Start_Date" 
type="text" 
id="ClassFilter1$Start_Date" 
class="ob_iTIE" />

Open in new window




and the other:
<input 
name="ClassFilter1$Start_Date" 
type="text" 
id="ClassFilter1_Start_Date" 
class="ob_iTIE" />

Open in new window

0
COBOLdinosaurCommented:
If you post a link to the page we can see what is happening on the page and that will increase the probability of finding a solution.

Cd&
0
Robert HamelSenior .NET developerAuthor Commented:
Thanks,
it was behind a login screen, but I've made a copy of it...

Here is a link to a trimmed down version of the page that has the code on it rendering with $ in control id name:
http://dotnet.ondev.com/FT63Admin/Toss_DatePicker.aspx

and here is the same page, on a different server, rendering the control id with an underscore instead.
http://test63.flextraining.com/admin/Toss_DatePicker.aspx


 Click the link for 'Show Scheduled Course Filter'
The date pickers in that control are not working.

But the date pickers in the main page, Promo start and end, work just fine.
0
Introduction to R

R is considered the predominant language for data scientist and statisticians. Learn how to use R for your own data science projects.

Robert HamelSenior .NET developerAuthor Commented:
One more tidbit that may or may not provide any value.

both these servers above are windows 2003 server.

I've also tested on windows 2008 and it seems to work similarly to the first example, using the $ as the separator.
0
Robert HamelSenior .NET developerAuthor Commented:
Thanks...

I've been messing with things trying to figure it out.

I've gotten it back to where the date selector works in one, but not the other.
my obout calendar is targeting ClassFilter1$cfTextBoxStartDateFilter now, which works on the first site but not 2nd.
This is because IIS is translating the name to ClassFilters1_cfTextBoxStartDateFilter on the 2nd server.

if i just enter cfTextBoxStartDateFilter, both site's class filter control calendars break, which is what you were seeing.

But using ClassFilter1$ in the target control's ID in a .net object just seems counter intuitive.  It should automatically figure it out, but it isn't.

I really think its going to come down to figuring out what causes the _ vs the $ in the ID tag of the text box in the rendering so I can set the server to respond properly.
0
Robert HamelSenior .NET developerAuthor Commented:
I've went ahead and restyled a common asp textbox to have same look as the obout control and that satisfied my requirements.  Can't waste any more time on figuring out the quirk.

Thanks for looking.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Robert HamelSenior .NET developerAuthor Commented:
Not happy with my own solution, but just didn't find any better way
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP.NET

From novice to tech pro — start learning today.