System.Web.UI.Control.GeneratePredictableClientID C# (CSharp) Method

GeneratePredictableClientID() private method

private GeneratePredictableClientID ( ) : string
return string
		string GeneratePredictableClientID ()
		{
			string myID = ID;
			bool haveMyID = !String.IsNullOrEmpty (myID);
			char separator = ClientIDSeparator;

			var sb = new StringBuilder ();
			Control container = NamingContainer;
			if (this is INamingContainer && !haveMyID) {
				if (container != null)
					EnsureIDInternal ();
				myID = _userId;
			}
			
			if (container != null && container != Page) {
				string containerID = container.ID;
				if (!String.IsNullOrEmpty (containerID)) {
					sb.Append (container.GetClientID ());
					sb.Append (separator);
				} else {
					sb.Append (container.GeneratePredictableClientID ());
					if (sb.Length > 0)
						sb.Append (separator);
				}
			}

			if (!haveMyID) {
				if (this is INamingContainer || !AutoID)
					sb.Append (myID);
				else {
					int length = sb.Length;
					if (length > 0 && sb [length - 1] == separator)
						sb.Length = length - 1;
				}
				
				return sb.ToString ();
			}
			
			sb.Append (myID);
			IDataItemContainer dataItemContainer = DataItemContainer as IDataItemContainer;
			if (dataItemContainer == null)
				return sb.ToString ();
			
			IDataKeysControl dataKeysContainer = DataKeysContainer as IDataKeysControl;
			GetDataBoundControlFieldValue (sb, separator, dataItemContainer, dataKeysContainer);
			
			return sb.ToString ();
		}