JS中输出.NET服务器控件!!

a1420078774 2010-02-06 11:48:57
document.writeln("<input id=\"Button1\" type=\"button\" value=\"HTML服务器控件\" runat=\"server\"\/>");
document.writeln("<asp:Button ID=\"Button2\" runat=\"server\" Text=\"服务器控件\" \/>");

以上代码错误.
1.HTML服务器控件去掉runat="server"正确
2.第二个怎么都不能正确.

问题:
第一个就要加runat="server",第二个就要用服务器控件.请高手解答.开多个帖子(http://topic.csdn.net/u/20100206/23/e2734170-478f-4f2e-908f-a2a78fd9d5f6.html?07256921405579002)送分.Thanks.

目的:在JS中输出.NET服务器控件........牛人解答啊..
...全文
281 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1420078774 2010-02-07
  • 打赏
  • 举报
回复
我想了个变通的.比如我用JS创建了个层.现在服务器控件改在页面上直接写了.那怎么样实现点击一个按钮让创建的层上出现服务器控件呢?
详细:JS创建一个层,层上有3行3列的表格,在页面上托了一个DropDownList ,我怎么点击一个按钮实现DropDownList 在创建层的表格的第2行第3列呢?

这个应该能实现.运行能通过的源码.马上结贴.多谢大家啊!
a1420078774 2010-02-07
  • 打赏
  • 举报
回复
....................呵呵.好像真的不太好弄.......................在等等看把.!!
lijing3333 2010-02-07
  • 打赏
  • 举报
回复
解决不了 服务端可以创建客户端的 客户端怎么能创建服务端的呢?
那服务器不早挂了?你应该在后台创建
qq546937127 2010-02-07
  • 打赏
  • 举报
回复
楼主,你我对你的需求不是很清楚,你说具体要实现什么,说清楚一点,我马上给你解决~
a1420078774 2010-02-07
  • 打赏
  • 举报
回复
未解决中..............
a1420078774 2010-02-07
  • 打赏
  • 举报
回复

希望能看到解决的源码...呵呵.
lzsh0622 2010-02-07
  • 打赏
  • 举报
回复
a1420078774 2010-02-07
  • 打赏
  • 举报
回复
我知道不太好实现才问大家的.那大家用什么变通的方法也行...比如
document.writeln(" <asp:DropDownList ID=\"DropDownList1\" runat=\"server\">");
document.writeln(" <\/asp:DropDownList>");

不一定要用服务器控件.只要能实现:
1.后台能给他赋值
2.这个控件在JS中写的.

牛人继续啊.................................
ajax或许可以把...............................
bwangel 2010-02-07
  • 打赏
  • 举报
回复
服务器控件只有在服务器端才能被解析为标准的HTML控件并返回给客户端浏览器.
你用js输出服务器控件,输出的结果是直接呈现在客户端浏览器上的.而客户端浏览器是识别不了服务器控件的,第一个之所以不出错,因为你用的是<Input>标签,浏览器是认得的, 第二个<asp:Button>浏览器是不认得的.

建议楼主先学习一下服务端/客户端的概念和asp.net的基本原理.
  • 打赏
  • 举报
回复
asp.net仅仅运行在服务器上,它输出html给客户端。你搞一个runat属性,就能证明它是服务器控件?

做不到啊。
  • 打赏
  • 举报
回复
既然你要回发到服务器,那么随时增加一个测试Button,以免写出自欺欺人的“增加控件”代码。

很简单,拖入一个Button,其回发处理事件什么都不用做(或者记录一点运行信息)。既然这个按钮什么都不做,那么很自然地点击它就不应该影响页面上的内容。搞你的代码开发时随时点击它,看看你所谓的动态创建的控件还在么?即使在那么它状态没有混乱么?
antoniusguo 2010-02-07
  • 打赏
  • 举报
回复
document.writeln(" <asp:Button ID=\"Button2\" runat=\"server\" Text=\"服务器控件\" \/>");

-------------------------------------------------------------------

<asp:Button ID=\"Button2\" runat=\"server\" Text=\"服务器控件\" \/>

直接放控件不行吗?
gsz_stylm 2010-02-07
  • 打赏
  • 举报
回复
如果你想用一个弹出层的话,这个不错你看看可以吗
http://blog.zol.com.cn/771/article_770617.html
YnSky 2010-02-07
  • 打赏
  • 举报
回复
我想了个变通的.比如我用JS创建了个层.现在服务器控件改在页面上直接写了.那怎么样实现点击一个按钮让创建的层上出现服务器控件呢?
详细:JS创建一个层,层上有3行3列的表格,在页面上托了一个DropDownList ,我怎么点击一个按钮实现DropDownList 在创建层的表格的第2行第3列呢?

这个应该能实现.运行能通过的源码.马上结贴.多谢大家啊!

根据这个.那么JS就是只创建HTML,服务器控件依然是页面托.这个很简单.
关键是怎么把服务器控件放在用JS创建页面的指定位置.!!
qq546937127 2010-02-07
  • 打赏
  • 举报
回复
补充一下,这是使用ajax.dll的简单步骤,http://blog.csdn.net/qq546937127/archive/2010/02/04/5289217.aspx
qq546937127 2010-02-07
  • 打赏
  • 举报
回复
Default.aspx页面:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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 runat="server">
<title></title>
<script type="text/javascript">
function bindFun()
{
document.getElementById("button1").onclick = addATextInput;
document.getElementById("button2").onclick = getValueFromServer;
}

function addATextInput()
{
var text = document.createElement("input");
text.setAttribute("type", "text");
text.setAttribute("value", "凤姐");
text.setAttribute("id", "text1");
document.body.appendChild(text);
}

function getValueFromServer()
{
if (document.getElementById("text1") == null)
alert('先按button1创建一个text');
else
document.getElementById("text1").value = _Default.abc('祝你').value;
}
</script>
</head>
<body onload="bindFun()">
<form id="form1" runat="server">
<div>
<input id="button1" type="button" value="Button1" />
<input id="button2" type="button" value="Button2" />
</div>
</form>
</body>
</html>


Default.aspx.cs页面:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(_Default));
}

[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public string abc(string para)
{
return para + "新年快乐!";
}
}

实现步骤:
1其中要用到ajax技术,需要下载一个.net使用ajax的程序集ajax.dll
2.在你的项目文件下引用这个ajax.dll。
3.复制以上代码。
4.在你的web.config里面添加
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />

<httpHandlers>

5.f5运行。之后按button1,则会用js动态创建一个text,然后再点button2,则会从服务器获得数据赋值给这个动态创建的text。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧