a标签调用后台方法

时间:2022-04-03 00:33:01
在一个页面上,有这样的需求,跟猫扑一样,点击左边栏的时候,右边的页面更改.但是不能用框架.我想的是,在前台页面的a标签添加onserverclick ,调用后台的a_click()事件,隐藏当前的div,显示页面隐藏的div.
前台:<a id="a" runat="server" onserverclick="a_click"/> 后台:  protected void a_click(object sender, EventArgs e){   } 
结果不能用,请问:具体该怎么写?是否有其他方法?

21 个解决方案

#1


<a id="#" runat="server" onserverclick="a_click">,不能用是,直接报错,不是后台内容的问题.

#2


ajax请求,得到页面显示在div

#3


引用 1 楼 a271083650 的回复:
<a id="#" runat="server" onserverclick="a_click">,不能用是,直接报错,不是后台内容的问题.
+

#4


如果只是想隐藏div,可以用js来做.

显示&隐藏侧边栏 

淡入淡出隐藏侧边栏JQ代码

#5


引用 2 楼 itliyi 的回复:
ajax请求,得到页面显示在div
不使用js方法,ajax方法

#6


你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。

#7


用这个控件行不行?反正你都是事件编程

 <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>

#8


引用 6 楼 dalmeeme 的回复:
你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。
我用一直不行,直接报错,它执行成js代码:缺少对象_doPostBack()

#9


难道没有解决的办法了么 ?

#10


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="Chomo" />
<link rel="start" href="http://www.14px.com" title="Home" />
<title>div仿框架布局</title>
<style type="text/css">
* { margin:0; padding:0; list-style:none;}
html { height:100%; overflow:hidden; background:#fff;}
body { height:100%; overflow:hidden; background:#fff;}
div { background:#f60; line-height:1.6;}
.top { position:absolute; left:10px; top:10px; right:10px; height:50px;}
.side { position:absolute; left:10px; top:70px; bottom:70px; width:200px; overflow:auto;}
.main { position:absolute; left:220px; top:70px; bottom:70px; right:10px; overflow:auto;}
.bottom { position:absolute; left:10px; bottom:10px; right:10px; height:50px;}
/*---ie6---*/
html { _padding:70px 10px;}
.top { _height:50px; _margin-top:-60px; _margin-bottom:10px; _position:relative; _top:0; _right:0; _bottom:0; _left:0;}
.side { _height:100%; _float:left; _width:200px; _position:relative; _top:0; _right:0; _bottom:0; _left:0;}
.main { _height:100%; _margin-left:207px; _position:relative; _top:0; _right:0; _bottom:0; _left:0;}
.bottom { _height:50px; _margin-top:10px; _position:relative; _top:0; _right:0; _bottom:0; _left:0;}
</style>
</head>
<body>
<div class="top"></div>
<div class="side">
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</div>
<div class="main">
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</div>
<div class="bottom"></div>
</body>
</html>

#11


引用 7 楼 zooen2011 的回复:
用这个控件行不行?反正你都是事件编程

HTML code

 <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>
服务器控件不是加重服务器负担么

#12


引用 6 楼 dalmeeme 的回复:
你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。


这个可以的。。。。。没错

#13


引用 8 楼 a271083650 的回复:
我用一直不行,直接报错,它执行成js代码:缺少对象_doPostBack()

可能你删除过前台中某些代码了。检查一下:
超链接是否位于form控件内:
<form id="form1" runat="server">
......
</form>
注意form必须加上runat="server",否则无法执行后台方法。

#14


引用 12 楼 slife890809 的回复:
引用 6 楼 dalmeeme 的回复:

你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。
……
我去~~~这个破美工,我丫想灭了她,结果就是一个form的问题,没有加form

#15


引用 14 楼 a271083650 的回复:
引用 12 楼 slife890809 的回复:

引用 6 楼 dalmeeme 的回复:

你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.……

美工如果没有人告知的话,可能是不知道要加form吧.....

#16


也不能怪美工

#17



protected string callBackReference;
 
protected void Page_Load(object sender, EventArgs e)
{

  this.callBackReference = this.Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");
}
public void RaiseCallbackEvent(string eventArgument)
{
..
}

function ReceiveServerData()
{
  回调的JS
}
onclick="<%# callBackReference %>"
我曾经看到有人这么用过

#18


你没有注册事件当然不能执行了。
尝试使用GetPostBackEventReference得到回发脚本。最后生成的HTML应该是类似这样:
<a id="a1" onclick="__doPostBack(&#39;a1&#39;,&#39;&#39;)">nihao</a>

#19


靠。 我也是美工的问题。

#20


引用 6 楼 dalmeeme 的回复:
你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。

测试通过,正解!

#21


我直接复制的 6楼的  可是为什么我的没用 ,VS 下调试根本就不进后台。。。你们真的有用??

#1


<a id="#" runat="server" onserverclick="a_click">,不能用是,直接报错,不是后台内容的问题.

#2


ajax请求,得到页面显示在div

#3


引用 1 楼 a271083650 的回复:
<a id="#" runat="server" onserverclick="a_click">,不能用是,直接报错,不是后台内容的问题.
+

#4


如果只是想隐藏div,可以用js来做.

显示&隐藏侧边栏 

淡入淡出隐藏侧边栏JQ代码

#5


引用 2 楼 itliyi 的回复:
ajax请求,得到页面显示在div
不使用js方法,ajax方法

#6


你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。

#7


用这个控件行不行?反正你都是事件编程

 <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>

#8


引用 6 楼 dalmeeme 的回复:
你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。
我用一直不行,直接报错,它执行成js代码:缺少对象_doPostBack()

#9


难道没有解决的办法了么 ?

#10


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="Chomo" />
<link rel="start" href="http://www.14px.com" title="Home" />
<title>div仿框架布局</title>
<style type="text/css">
* { margin:0; padding:0; list-style:none;}
html { height:100%; overflow:hidden; background:#fff;}
body { height:100%; overflow:hidden; background:#fff;}
div { background:#f60; line-height:1.6;}
.top { position:absolute; left:10px; top:10px; right:10px; height:50px;}
.side { position:absolute; left:10px; top:70px; bottom:70px; width:200px; overflow:auto;}
.main { position:absolute; left:220px; top:70px; bottom:70px; right:10px; overflow:auto;}
.bottom { position:absolute; left:10px; bottom:10px; right:10px; height:50px;}
/*---ie6---*/
html { _padding:70px 10px;}
.top { _height:50px; _margin-top:-60px; _margin-bottom:10px; _position:relative; _top:0; _right:0; _bottom:0; _left:0;}
.side { _height:100%; _float:left; _width:200px; _position:relative; _top:0; _right:0; _bottom:0; _left:0;}
.main { _height:100%; _margin-left:207px; _position:relative; _top:0; _right:0; _bottom:0; _left:0;}
.bottom { _height:50px; _margin-top:10px; _position:relative; _top:0; _right:0; _bottom:0; _left:0;}
</style>
</head>
<body>
<div class="top"></div>
<div class="side">
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</div>
<div class="main">
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</div>
<div class="bottom"></div>
</body>
</html>

#11


引用 7 楼 zooen2011 的回复:
用这个控件行不行?反正你都是事件编程

HTML code

 <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>
服务器控件不是加重服务器负担么

#12


引用 6 楼 dalmeeme 的回复:
你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。


这个可以的。。。。。没错

#13


引用 8 楼 a271083650 的回复:
我用一直不行,直接报错,它执行成js代码:缺少对象_doPostBack()

可能你删除过前台中某些代码了。检查一下:
超链接是否位于form控件内:
<form id="form1" runat="server">
......
</form>
注意form必须加上runat="server",否则无法执行后台方法。

#14


引用 12 楼 slife890809 的回复:
引用 6 楼 dalmeeme 的回复:

你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。
……
我去~~~这个破美工,我丫想灭了她,结果就是一个form的问题,没有加form

#15


引用 14 楼 a271083650 的回复:
引用 12 楼 slife890809 的回复:

引用 6 楼 dalmeeme 的回复:

你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.……

美工如果没有人告知的话,可能是不知道要加form吧.....

#16


也不能怪美工

#17



protected string callBackReference;
 
protected void Page_Load(object sender, EventArgs e)
{

  this.callBackReference = this.Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");
}
public void RaiseCallbackEvent(string eventArgument)
{
..
}

function ReceiveServerData()
{
  回调的JS
}
onclick="<%# callBackReference %>"
我曾经看到有人这么用过

#18


你没有注册事件当然不能执行了。
尝试使用GetPostBackEventReference得到回发脚本。最后生成的HTML应该是类似这样:
<a id="a1" onclick="__doPostBack(&#39;a1&#39;,&#39;&#39;)">nihao</a>

#19


靠。 我也是美工的问题。

#20


引用 6 楼 dalmeeme 的回复:
你的前台超链接标记写错了,应该是
<a id="a" runat="server" onserverclick="a_click">结帖给分</a>

后台:
protected void a_click(object sender, EventArgs e)
{
Response.Write("ddd");
}
我测试过可以的。

测试通过,正解!

#21


我直接复制的 6楼的  可是为什么我的没用 ,VS 下调试根本就不进后台。。。你们真的有用??