Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 更新面板中未触发TextboxChanged事件_Asp.net_Ajax_Textbox_Updatepanel - Fatal编程技术网

Asp.net 更新面板中未触发TextboxChanged事件

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

我想在UpdatePanel中触发TextBox的TextChanged事件,这样我就可以对用户的输入做一些事情

到目前为止,我得到的是以下代码:

<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中发布的相同错误