[C#/.net] 后台写前台代码:怎么实现button的点击事件?

Response.Write("<td>");Response.Write("?????");//这里写入一个button然后点击它如同<ASP>标签一样,能进入一个后台... Response.Write("<td>");
Response.Write("?????");//这里写入一个button 然后点击它如同<ASP>标签一样,能进入一个后台方法;
Response.Write("</td>");

我试过写入
<ASPbutton标签>不显示,
inputbutton没事件,
可能是我写错了~

指点下小弟啊~
mathewxiang 爱桔子人 qiangking smokingdog marser_clark 都很对,非常感谢。
展开
 我来答
妖好你041af
2010-12-02 · TA获得超过499个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:0
展开全部
服务端的Button和客户端的Button是不一样的 服务端的Button的作用域在服务器端 相反 页面上的Button的作用域仅仅限于浏览器
因为这样 二者的书写方式是不一样的
服务端最基本的写法是:<asp:Button ID=xxx text=按钮 runat=server></asp:Button>
相反客户端的基本写法是:<input type=button id=xxx value=按钮/>

#####但是归根结底,服务端按钮在页面呈现时还是要转换成客户端按钮的 中间的机制很复杂 牵涉到ViewState等,不多说了
-----------------------------------------------------------------------------------
下面说说楼主关心的点击事件的写法,楼主也没说清楚情况 我尝试举几种常见情形,如果楼主的情形不在其中,参考一下思路就能想出来该怎么做.
1)要服务器端的一个ASP:Button在客户端被点击时执行某个事件,这个是很简单的,有以下两种方法:
A>button.OnClientClick="window.alert('Shit!you hurt me!')";
B>button.Attribute["onclick"]="window.alert('Shit,you hurt me!')"
2)在页面的后台代码中要某个客户端的按钮执行某个事件,假定按钮的id=xxx,其方法是写一段脚本在客户端运行:
Response.Write("<script>document.getElementById('xxx').onclick=function(){window.alert('Damm, please don't hurt me!');}</script>");
3)在客户端的按钮中直接声明某个事件:
<input type=button id=xxx onclick="window.alert('Damm,you hurt me.')" />

上面说的都是服务端或者客户端定义客户端的事件
那么有没有可能客户端按钮点击后执行服务端事件呢?
OK,如果你定义的客户端按钮其实是服务端按钮在客户端浏览器的呈现的话 那么你可以很轻松的实现,这一点我想楼主肯定已经知道怎么做了 如果你不知道的话看前面第四楼 qiangking的解答.
还有一个方法就是AJAX了 通过AJAX也可以实现上述功能.OK 这是理论上的,我也知道怎么写,不过微软又基于AJAX给出了一个解决方案,代码为ALTRAS 抱歉 我没用过ALTRAS 所以只能说到这里了
marser_clark
2010-12-02 · TA获得超过257个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:136万
展开全部
Response.Write("?????");这样肯定不行的,看下面代码,测试通过的。
protected override void CreateChildControls()
{
Button btn = new Button();
btn.Text = "test";
btn.Click += new EventHandler(btn_Click);
this.form1.Controls.Add(btn);
base.CreateChildControls();
}

void btn_Click(object sender, EventArgs e)
{
this.TextBox1.Text = "123";
}
顺便我再发给你另一个帖子,希望对你有用:
http://zhidao.baidu.com/question/201574521.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斯年余芳
2010-12-02
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
<asp:Button ID="Button" runat="server" />本身就是在服务器端执行的代码。它其实就是
Response.Write(“<input type='button' id="Button" />”)。就是说上面两种写法是一样的,都是交给服务器端去执行输出一段html(<input type='button' id="Button" />)。
如果用Response.Write(‘<asp:Button ID="Button" runat="server" />’),服务器会认为你要输出的是这段字符串,如果浏览器不支持的话,将不会显示出任何东西来。你可以查看自己的souce,就会发现吧这段字符串输入出来,而不是生成button的Html。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱桔子人
2010-12-02 · TA获得超过113个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:226万
展开全部
你可以这样写。输出的时候不要Response.Write
protected void Page_Load(object sender, EventArgs e)
{
Table tb = new Table();
TableRow tr = new TableRow();
TableCell tc = new TableCell();
Button btn = new Button();
btn.ID = "123";
btn.Text = "提交";
btn.Click += new EventHandler(btn_Click);
tc.Controls.Add(btn);
tr.Controls.Add(tc);
tb.Controls.Add(tr);
this.form1.Controls.Add(tb);

}

protected void btn_Click(object sender, EventArgs e)
{
Response.Write("123123");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友88ca838
2010-12-02 · TA获得超过503个赞
知道小有建树答主
回答量:767
采纳率:0%
帮助的人:486万
展开全部
string EditUrlDetail = "ContractDeliveryFileManage.aspx?AutoNum=" + strAutoNum + "&TimeStamp=" + Server.UrlEncode(DateTime.Now.ToString());
string strUrl;
strUrl = "<script>openfilemanage('" + EditUrlDetail + "');</script>";
System.Web.UI.ScriptManager.RegisterStartupScript(btnFileManage, this.GetType(), "btnFileManage", strUrl, false);

像这样openfilemanage就是前台的js写的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式