Set ClientID in asp.net

Is it possible to set the ClientID of any asp.net server control? How can I do this?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

The good news is that in VS 2010 .Net 4, you’ll have complete control over Client IDs!

Still for the current versions of .Net, you can make due. I assume you need the ID for JavaScript. If so, just get the ID like so:

<script type="text/javascript">
    var myTextBox = $('#<%=TextBox1.ClientID%>');
</script>

Method 2

I would advice against doing this unless you are sure you want to do it, but there is a way. You can override the ClientID property from within the server control.

public override string ClientID
{
    get { return "whatever"; }
}

But as others have noted, you can’t do it from outside.

Method 3

That’s not possible. The ClientID is generated by ASP.NET. From MSDN:

The ClientID value is generated by
concatenating the ID value of the
control and the UniqueID value of its
parent control. If the ID value of
the control is not specified, an
automatically generated value is used.

Method 4

Even i think it is not possible in Visual studio 2008 . Because Control.ClientID Property has only get method

Edit :But in Visual studio 2010(.Net 4.0) it is possible

Method 5

ASP.NET 4 has ClientIDMode property on each control for that.
If you want to turn off ClientID completely you can use this trick – it works for any non-postback control

Method 6

This is an ASP.NET 4.0 feature.

Method 7

For VS 2010, .NET 4.0:

If you just try to set ctrl.ClientID="stringID" you will get an Error, saying that ClientID is read only. You can control the value of ClientID using ClientIDMode – which defines the algorithm with which ClientID is set:

ctrl.ID = "IDstring";
ctrl.ClientIDMode = ClientIDMode.Static;   //ClientID value is set to the value of ID

The html markup will mark your control’s html with the control’s ID. Thus you have some degree of control from the code-behind.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x