问题描述
可能有点绕口,但是我也不知道问题根源,不知道怎么说这个是静态页面这个是aspx.cs后台代码,a标签无法调用后台事件虽然这方法很绕,但是我找不到其他方法。我得先在后台cs动态获取数据,写出html,然后再调用后台事件。
解决方案
解决方案二:
解决方案三:
一个鬼都没有,果然这种东西还是要靠自己钻研呀!
解决方案四:
ASP.NET页面编译顺序是先预编译aspx页面,把里面的各种server相关标签翻译成各种postback,然后执行后台cs里的代码,你向前台输出html标签的时候,已经过了页面预编译阶段,所以是不会再自动把你的server相关标签自动替换成postback的。你需要向前台的scriptmanger注册相关操作,或者用ajax,或者这里new一个控件添加到页面,而不是直接拼html
解决方案五:
你在个字符串里边写runnat="server"那是骗自己呢,字符串又不是森么asp.net服务器控件。
解决方案六:
引用4楼sp1234的回复:
你在个字符串里边写runnat="server"那是骗自己呢,字符串又不是森么asp.net服务器控件。
早上好,又看到你了。字符串里面的东西,不是会原封不动的写在html里面吗?我在html页面已经调用了这个字符串了<%=imgHtml%>,谢谢!
解决方案七:
引用3楼wjq的回复:
ASP.NET页面编译顺序是先预编译aspx页面,把里面的各种server相关标签翻译成各种postback,然后执行后台cs里的代码,你向前台输出html标签的时候,已经过了页面预编译阶段,所以是不会再自动把你的server相关标签自动替换成postback的。你需要向前台的scriptmanger注册相关操作,或者用ajax,或者这里new一个控件添加到页面,而不是直接拼html
对的呀!你说得对。原来是编译顺序的问题。难怪写的的属性和事件没反应。那么能不能告诉我,怎么写才好呢。在后台cs代码,动态生成便签或按钮,传给前台aspx用户去点击,然后又回到后台响应。谢谢!
解决方案八:
用ajax就搞定啦
解决方案九:
引用7楼zhongniangyou的回复:
用ajax就搞定啦
给个代码来参考下好吧
解决方案十:
引用8楼sinat_24853423的回复:
Quote: 引用7楼zhongniangyou的回复:
用ajax就搞定啦给个代码来参考下好吧
1、首先你把所有的HTML代码写在aspx页面,通过<%#Eva("显示的字段名")%>绑定数据。2、在a标签里面使用onchick="aa();"使用一个方法名(aa())在JS中去调用这个方法。3、后台的方法写在一般处理程序里面,用ajax去调用就可以了以下是一个AJAX例子:<divclass="tongzhi_MianDiv"><divclass="TZtitleidv">标题:<inputid="txtTitle"type="text"style="width:600px;"/></div><divclass="title_txt_div">通知内容:<divclass="TZtxt_div"><%--<textareacols="110"rows="12"id="TZtxt"runat="server"></textarea>--%><textareacols="105"rows="15"style="width:760px;height:260px;"runat="server"id="Textarea1"name="elm3"class="xheditor-simple"></textarea></div></div></div><divclass="TZ_tijiao"><inputid="bntaddTZ"type="button"value="确定"onclick="addTongZhi();"/></div>functionaddTongZhi(){vartitle=$("#txtTitle").val();vartxt=$("#Textarea1").val();varid=<%=adminID%>$("#txtTitle").val("");$("#Textarea1").val("");$.post("/AdminForum/AdminAJAX/AddTongZhi.ashx",{"title":title,"txt":txt,"id":id},function(data){if(data=='1'){alert("发布成功!");}elseif(data=='0'){alert("发布失败!");}else{alert("标题或内容不能为空!");}});}一般处理程序:内容跟。.cs的基本一样的。就是获取值:stringtitle=context.Request["title"];返回时写法有点区别:context.Response.Write("1");return;就这么点,你自己琢磨以下吧
解决方案十一:
引用5楼sinat_24853423的回复:
Quote: 引用4楼sp1234的回复:
你在个字符串里边写runnat="server"那是骗自己呢,字符串又不是森么asp.net服务器控件。早上好,又看到你了。字符串里面的东西,不是会原封不动的写在html里面吗?我在html页面已经调用了这个字符串了<%=imgHtml%>,谢谢!
你先了解一下什么是服务器控件吧,你往浏览器输出runat=server你让服务器怎么解析?
解决方案十二:
在最后加入一个LABEL控件.然后控件里写.Text=<script>....
解决方案十三:
你这种服务器通过代码动态添加的,是无法通过编译的,要注意你向浏览器端输出html代码与注册按钮事件的时机