我有一个带中继器的asp.net Web表单。在此转发器中,有多个控件,并且我通过ItemCreated事件影响了这些控件的javascript函数。我用这种代码制作的:

btnBareme.OnClientClick = string.Format("ChangeBareme('{0}','{1}',this); return false", item.Num_dossier, item.IdDemande);


javascript函数“ changeBareme()”在页面的标题中定义。它工作正常,但我需要独立于页面的其他元素来更新转发器。

因此,我在转发器周围使用了asp:UpdatePanel。像这样:

<asp:UpdatePanel ID="UpdatePnl2" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <div>
              <h1>Foo</h1>
            </div>

            <div>
            <asp:Repeater runat="server" ID="rptFoo" OnItemCreated="rptFoo_ItemCreated" OnItemCommand="rpt_ItemCommand">
                <HeaderTemplate>
                    <table id="TabRep"  class="DataRepeater">
                        <thead>
                            <tr>
                                <th></th>
                            </tr>
                        </thead>
                        <tbody>
                </HeaderTemplate>
                <ItemTemplate>
                    <tr>
                       SomeContent Here with controls
                    </tr>
                </ItemTemplate>
                <FooterTemplate>
                </tbody>
                   </table>
                </FooterTemplate>
            </asp:Repeater>
            <br/>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>


在那里..它将不起作用。 updatepanel外部的页面控件丢失了状态,在调试模式下,生成了数百个“脚本块”。



我的问题是我不太了解在内部使用javascript处理updatepanels的方式。因此,我需要更多有经验的人的建议。如何使此更新面板有效?什么是数百个脚本块?我需要使中继器与页面的其余部分更加“独立”。

提前致谢。

最佳答案

这些脚本块在这里,因为每个按钮都有一个脚本块

<input type="button" onclick="changebareme.."/>


这不是更新面板的错误。

更好的方法是向每个按钮添加一个公共的CSS类。然后使用javascript选择所有按钮,并观察所有按钮的click事件。

关于c# - 为什么我的updatepanel会生成数百个脚本块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8397076/

10-11 20:42