问题描述
- asp. net 前台调用后台的一个方法,点击按扭时如何调用呢,调用如下方法
-
void test()
{
char[] constant = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
StringBuilder ascii = new StringBuilder();Random random = new Random(); for (int i = 0; i < 6; i++) { ascii.Append(constant[random.Next(10)]); } lblErro.Text = ascii.ToString(); }
解决方案
ajax来调用,增加特殊参数已区分出是ajax,pageLoad判断下是ajax就执行你的test输出内容
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js"></script>
<div id="dv"></div>
<input type="button" onclick="runTest()" value="点击运行服务器端Test方法" />
<script>
function runTest() {
$.ajax({ url: 'xxxxxxx.aspx?ajax=1', cache: false, success: function (text) {
$('#dv').html(text);//将返回值放入dv对象中
}, error: function (xhr) { alert('动态页有问题n' + xhr.responseText); }
});
}
</script>
xxxxxxx.aspx
protected void Page_Load(object sender,EventArgs)
{
if(Request.QueryString["ajax"]=="1")test();
}
void test()
{
char[] constant = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
StringBuilder ascii = new StringBuilder();
Random random = new Random();
for (int i = 0; i < 6; i++)
{
ascii.Append(constant[random.Next(10)]);
}
Response.Write(ascii.ToString());////////////////////ajax请求你动态设置服务器端标签无效
Response.End();
}
解决方案二:
最简单的是放一个服务器的按钮(asp:button)到页面上,双击,编写click代码,调用 test。
解决方案三:
void test()
{
char[] constant = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
StringBuilder ascii = new StringBuilder();
Random random = new Random();
for (int i = 0; i < 6; i++)
{
ascii.Append(constant[random.Next(10)]);
}
lblErro.Text = ascii.ToString();
}
protected void btn(object sender, EventArgs e)
{
test();
}
<asp:Button Text="text" runat="server" OnClick="btn_Click" />
解决方案四:
你这个写法注定你是要通过页面postback的时候通过事件来访问,如果ajax的话,不可能执行lblErro.Text = ascii.ToString();
时间: 2024-10-30 09:27:43