我有一个带有转发器的asp.net网络表单。在这个转发器中是多个控件,我用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之外的页面控件丢失了它们的状态,在调试模式下,生成了数百个“脚本块”。
我的问题是我真的不太了解updatepanels如何使用javascript进行处理。所以我需要一些经验丰富的人提供的建议。如何使此更新面板生效?有几百个脚本块是什么?我需要让转发器与页面的其他部分更加“独立”..
提前致谢。
答案 0 :(得分:2)
这些脚本块在这里是因为你有每个按钮的脚本块
<input type="button" onclick="changebareme.."/>
这里不是更新面板故障。
更好的方法是为每个按钮添加一个通用的css类。然后使用javascript选择所有按钮,并观察所有按钮上的点击事件。