Asp.net 更新面板中未触发TextboxChanged事件
我想在UpdatePanel中触发TextBox的TextChanged事件,这样我就可以对用户的输入做一些事情 到目前为止,我得到的是以下代码:Asp.net 更新面板中未触发TextboxChanged事件,asp.net,ajax,textbox,updatepanel,Asp.net,Ajax,Textbox,Updatepanel,我想在UpdatePanel中触发TextBox的TextChanged事件,这样我就可以对用户的输入做一些事情 到目前为止,我得到的是以下代码: <asp:GridView ID="gdBestellliste" AutoGenerateColumns="false" runat="server" Width="100%" AllowPaging="false" GridLines="Horizontal" EnableModelValidatio
<asp:GridView ID="gdBestellliste" AutoGenerateColumns="false" runat="server"
Width="100%" AllowPaging="false" GridLines="Horizontal" EnableModelValidation="true"
BorderColor="#6893CF" PagerStyle-BackColor="#F0F0F0" HeaderStyle-Height="20" ShowFooter="false">
<Columns>
<asp:TemplateField HeaderText="Amount to order" HeaderStyle-BorderStyle="None" HeaderStyle-HorizontalAlign="left" HeaderStyle-Width="70px"
ItemStyle-HorizontalAlign="left" ItemStyle-Wrap="false" ItemStyle-VerticalAlign="Middle" ItemStyle-CssClass="DataCell">
<ItemTemplate>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:TextBox runat="server" ID="tbProductLookup" OnTextChanged="tbProductLookup_Changed" AutoPostBack="true"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
它永远不会到达我为TextChanged事件定义的codebehind方法
那么我做错了什么?任何帮助都将不胜感激:)
更新:
似乎我的问题的一部分是我那部分的错误信息。我假设更新面板只加载代码背后所需的部分,我现在知道这是完全错误的。因此,在我的代码中的某个地方创建了一个空GUID,这最终导致了PageRequestManagerServerErrorException
很好,最后我没有收到任何错误消息,但我仍然无法使用TextChanged事件
我不知道这是否有什么帮助,但我发现当我第一次在文本框中写东西时,什么也没发生。但是,当我将某些内容写入文本框并再次将其保留时,会发生回发(无异步)
到底怎么回事 在
<Triggers>
<asp:AsyncPostBackTrigger ControlID="txtboxid" EventName="TextChanged" >
</Triggers>
在后面添加以下行
<Triggers>
<asp:AsyncPostBackTrigger ControlID="txtboxid" EventName="TextChanged" >
</Triggers>
您的updatepanel没有“ID”
如果你不能访问updatepanel
UpdatePanel MyUpdatePanel = (UpdatePanel)mygridview1.FindControl("MyUpdatePanel");
写下这些代码。我希望能帮助你。你的updatepanel没有“ID”
如果你不能访问updatepanel
UpdatePanel MyUpdatePanel = (UpdatePanel)mygridview1.FindControl("MyUpdatePanel");
写下这些代码。我希望能帮助你。首先:感谢所有试图帮助我解决问题的人。你是我爱你的唯一原因
我的问题似乎起源于我的代码隐藏,因为我通过注释从代码隐藏到实现基本功能(设置数据源并将其绑定到GridView,定义TextChanged事件调用的方法)来解决它
对于所有偶然发现与我相同问题并碰巧阅读本文的人,如果您想在gridview的更新面板中创建TextChanged事件,我想展示您必须实现的内容:
ASPX文件:
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<div>
<asp:GridView ID="yourGridviewID" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:TextBox ID="yourTextboxId" OnTextChanged="yourTextboxId_Changed" runat="server" AutoPostBack="true"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
如果把这三个部分放在一起,就真的只有三个重要的部分可以完成这项工作:
AJAX工具脚本管理器
定义在带有OnTextChanged的textbox中触发TextboxChanged事件时调用的方法(当然,该方法也必须存在于代码隐藏中;)
将文本框中的AutoPostBack设置为true
希望这能帮助某人摆脱我长期以来的痛苦:)
更新:
我刚刚发现是什么导致TextboxChanged事件没有发生。正如我在更新我的问题时所说的:codebehind文件的所有内容都将由Updatepanel加载。但是,由于我只在没有回发的情况下在pageload上设置了数据源并绑定了gridview,尽管由于updatepanel而正确显示了gridview,但gridview没有加载,因此事件无法发生。为了仍然无法在回发时设置数据源,我找到了以下简单的解决方案:
if(!IsPostBack || YourToolkitScriptManagerID.IsInAsyncPostBack) SetDatasource();
因此,Updatepanel在启动异步回发时完全了解Gridview。首先:感谢所有试图帮助我解决问题的人。你是我爱你的唯一原因
我的问题似乎起源于我的代码隐藏,因为我通过注释从代码隐藏到实现基本功能(设置数据源并将其绑定到GridView,定义TextChanged事件调用的方法)来解决它
对于所有偶然发现与我相同问题并碰巧阅读本文的人,如果您想在gridview的更新面板中创建TextChanged事件,我想展示您必须实现的内容:
ASPX文件:
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<div>
<asp:GridView ID="yourGridviewID" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:TextBox ID="yourTextboxId" OnTextChanged="yourTextboxId_Changed" runat="server" AutoPostBack="true"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
如果把这三个部分放在一起,就真的只有三个重要的部分可以完成这项工作:
AJAX工具脚本管理器
定义在带有OnTextChanged的textbox中触发TextboxChanged事件时调用的方法(当然,该方法也必须存在于代码隐藏中;)
将文本框中的AutoPostBack设置为true
希望这能帮助某人摆脱我长期以来的痛苦:)
更新:
我刚刚发现是什么导致TextboxChanged事件没有发生。正如我在更新我的问题时所说的:codebehind文件的所有内容都将由Updatepanel加载。但是,由于我只在没有回发的情况下在pageload上设置了数据源并绑定了gridview,尽管由于updatepanel而正确显示了gridview,但gridview没有加载,因此事件无法发生。为了仍然无法在回发时设置数据源,我找到了以下简单的解决方案:
if(!IsPostBack || YourToolkitScriptManagerID.IsInAsyncPostBack) SetDatasource();
因此,Updatepanel在启动异步回发时完全了解Gridview。您的更新模式是有条件的,但您没有为它定义triggr。我以前也尝试过一些触发器,但我也无法让它使用它们。我好像忘了把这个扔掉。如果有人能在GridView内的UpdatePanel中发布一个文本框的工作示例,并触发TextboxChanged事件,我们将不胜感激。更新模式是有条件的,但你没有为它定义triggr。我以前也尝试过一些触发器,但我也无法让它与它们一起工作。我好像忘了把这个扔掉。如果有人能在GridView中的UpdatePanel中发布一个文本框的工作示例,并正确触发TextboxChanged事件,我们将不胜感激。我假设您的意思是将TextChanged作为事件名称?因为文本框没有更改的事件。而且对于TextChanged事件,这也不起作用。仍然是问题和Scr中发布的相同错误