OnClientClick
函数,但该事件的问题是首先会执行OnClientClick
函数,然后才会执行OnServerClick
函数,即首先运行 JavaScript 函数,然后才执行 C# 代码,但我需要相反的顺序,即首先执行C#代码,然后再运行JavaScript。我在我的代码中使用了AJAX.NET和ScriptManager。ScriptManager能帮助我吗?否则,如何在服务器端运行JavaScript。我需要以下方式:
Button1_Click(object sender, EventArgs e)
{
ListBox1.Items.Add(TextBox1.Text); //for example
` here I have to run JavaScript `
}
有没有办法实现这个?
编辑1:
我需要在按钮点击时将div向下滚动(单击按钮使用databinder和repeater添加新数据到div中)。如上所述,clientclick首先运行,但我需要在服务器操作之后运行它。
Javascript是...
<script>
var objDiv = document.getElementById("div1");
objDiv.scrollTop = objDiv.scrollHeight;
</script>
并且。
<div id="div1"> //css properties height 200 and width 200 overflow:auto
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" />
<asp:Timer ID="Timer1" runat="server" Interval="200" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Repeater id="Repeater1" runat="server" >
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Message") %> <br />
</ItemTemplate>
</asp:Repeater>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
</div>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="div2">
<asp:TextBox ID="tb_message" runat="server" Width="250px" EnableViewState="false" />
<br />
<asp:Button ID="btn_send" runat="server" Width="250px" Text="Send"
onclick="btn_send_Click" />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btn_send" EventName="click" />
</Triggers>
</asp:UpdatePanel>