我有一个带中继器的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/