Marek
7/23/2007 6:18:00 AM
Aby reagowac na bezposrednia zmiane w tekstu w kontrolce TextBox
zastosowalem TextChangedExtender (znaleziony w sieci) wspolpracujacy
AjaxControlToolkit.
W TextChangedExtender, ustawilem mu wartosc
TextChangedFunction="onTextChangedWariant1"
a sama funkcja wyglada nastepujaco:
[Kod JavaScript]
<script type="text/javascript">
function onTextChangedWariant1()
{
__doPostBack('_hiddenFilterWariant1','');
}</script>
W kodzie ASP.NET kontrolka _hiddenFilterWariant1 wyglada nastepujco:
<asp:LinkButton ID="_hiddenFilterWariant1" runat="server" CssClass="hidden"
OnClick="_hiddenFilterWariant1_Click">Filter</asp:LinkButton>
a TextChangedExtender:
<tce:TextChangedExtender ID="tbExtenderWariant1" runat="server"
TargetControlID="tbWariant1" Timeout="250"
TextChangedFunction="onTextChangedWariant1" />
po stronie serwera jest obs3uga zdarzenia Click dla LinkButton:
protected void _hiddenFilterWariant1_Click(object sender, EventArgs e)
{
}
Ale sprawdzam pod debuuggerem i nie wchodzi do tej metody. Oczywi?cie moge
odtworzyc jaka kontrolka wygenerowala zdarzenie w Page_Load:
string controlName = Request.Params.Get("__EVENTTARGET");
string passedArgument = Request.Params.Get("__EVENTARGUMENT");
Rozwiazanie jest ma3o eleganckie. Dlaczego jednak nie wchodzi do obs3ugio
metody Click? Klikniecie reczne genruje zdarzenie Click wiec wszystkie
parametry kontrolek sa wlasciwe. Dlaczego __doPostBack nie generuje tego
zdarzenia?
MP