Указываете ли вы ClientID вашего элемента управления, в отличие от ClientID страницы (как в примере из другого вопроса SO, на который вы ссылались)?
Если нет, то это объясняет, почему страница отправляет обратно, но не вызывает метод RaisePostBack в вашем элементе управления.
Чтобы ссылаться на ClientID вашего элемента управления, вызовите функцию __doPostBack следующим образом:
__doPostBack("<%= yourControlID.ClientID %>", "an argument");
В качестве примечания: если ваш элемент управления является единственным элементом управления на странице, то ASP.NET не будет создавать функцию __doPostBack, если вы не вызовете GetPostBackEventReference для элемента управления.
Вам не обязательно использовать ссылку, но вам нужно вызвать метод, чтобы страница знала, что нужно сгенерировать функцию на стороне клиента.
Вы можете вызвать GetPostBackEventReference следующим образом:
public class MyTreatment : UserControl, IPostBackEventHandler
{
protected override void OnLoad(EventArgs e)
{
string postBackEventReference = Page.ClientScript.GetPostBackEventReference(this, string.Empty);
base.OnLoad(e);
}
public void RaisePostBackEvent(string eventArgument)
{
}
}
Надеюсь, это поможет.