Пишу CustomControl, у которого внутри есть <input type="text" />.
В коде есть GetPostBackEventReference() который добавляет к <input type="text" />, серверную обработку события onchange.
Но при этом в GetPostBackEventReference мы должны конкретно указать параметр, который будет передан в постбэке, и пойман нами в RaisePostBackEvent.
В нашем же случае, нужно чтобы в постбэке в качестве параметра был передан текст, который введет юзер. Как это сделать?
Если говорить о коде, то имеем что то вроде:
protected override void RenderContents(HtmlTextWriter output)
{
ClientScriptManager cs = Page.ClientScript;
output.AddAttribute(HtmlTextWriterAttribute.Type, "text");
output.AddAttribute(HtmlTextWriterAttribute.Onchange, cs.GetPostBackEventReference(this, "AAA")); // <-- вот оно где!
output.RenderBeginTag(HtmlTextWriterTag.Input);
output.RenderEndTag();
}
Если использовать такой код, то в
void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
{
}
в параметре eventArgument передастся ААА.
Но нам нужно получить не ААА, а то что ввел пользователь. Как?