十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
类型不同啊大哥,a是js的数组,后面应该是一个数组对吧,应该是"1,2,",str是C#的string[],你知道%=Test() %的是什么吗,不管他,你自己测试,只要改一下就行了,
创新互联是一家专注网站建设、网络营销策划、微信小程序、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十载以来,已经为上千效果图设计各业的企业公司提供互联网服务。现在,服务的上千客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
public string Test()
{
return "1,2";
}
OK,你改一下再试试吧。
______________________________________________________________________
问题补充:我的问题其实不完全,其实我建数组是为了保存数据库中的数据。传到前台动态显示!
public string[] Test()
{
Person.DA.PersonDa pda = new Person.DA.PersonDa();
Person.Model.Person person = new Person.Model.Person();
DataTable dt = pda.GetTableLink();//
int n = dt.Rows.Count;//表的行数
string[] strLink = new string[n];
for (int i = 0; i n; i++)
{
strLink[i] = dt.Rows[i][0].ToString();
}
return strLink;
}
在前台怎么接收呢?高手指点下!
其实呢,你最后写到页面上的,其实应该是代码的形式,也就是说,直接输出字符串就行了,所以呀,这个方法应该这样改就对了
public string Test()
{
Person.DA.PersonDa pda = new Person.DA.PersonDa();
Person.Model.Person person = new Person.Model.Person();
DataTable dt = pda.GetTableLink();//
int n = dt.Rows.Count;//表的行数
string strLink = string.Empty;
for (int i = 0; i n; i++)
{
strLink =strLink +","+ dt.Rows[i][0].ToString();
}
return strLink.Substring(0,strLink.Length-1);
}
这样,直接输出一个字符串,js就能读到了。
____________________________________________________________________
public string Test()
{
Person.DA.PersonDa pda = new Person.DA.PersonDa();
Person.Model.Person person = new Person.Model.Person();
DataTable dt = pda.GetTableLink();//
int n = dt.Rows.Count;//表的行数
string strLink = string.Empty;
for (int i = 0; i n; i++)
{
strLink =strLink +","+ dt.Rows[i][0].ToString();
}
return strLink.Substring(0,strLink.Length-1);
}
后台按照你提供的方法,我在前台var a="%=Test() %";
document.write(a);能输出字符串。但是,我想输出字符串里第一个字符串。比如说strLink=[首页,连接,更新信息,删除信息],我想在前台输出第3项(更新信息),或则说循环输出字符串里信息。如果后台是个二维数组呢,想在前台循环输出,那又该怎样做呢?谢谢啦!!!哎,AJAX我不会!
这个很简单啊,js的二维数组是怎么定义的,你就输出什么样的吗,记住,输出的就是符合js的数据类型的变量值,比如a值需要是"{{0,1},{1,2}}"这个样子的,你就把后台的二维数组拼成这种格式的,那么数据不就有了吗,至于输出,那你就看一下js的for循环,写完循环输出,问题不就解决了们吗。
1:你的程序原则性错误,后台的东西不要使用JS,尤其是数据库连接的管理,使用JAVA,PHP,RUBY都好。
2:JS调用后台,可以使用AJAX,推荐DWR框架,简单易学。
如果利用ajax来处理可能会好些。目前只能通过在后台对这些控件绑定前台的javascript函数来支持前台的处理函数。在网上找了找,发现了几种方法可以达到要求: 第一种,感觉用起来最方便 Button1.Attributes.Add("onclick", "return OnBtnClick()"); OnBtnClick() 是一个前台方法,在此方法中直接在前台处理数据。可以替换成一般的脚本 第二种,OnClientClick asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="OnClientClick()" OnClick="Button1_Click" / Button1_Click是在cs中(后台)处理的方法,而OnClientClick() 就是javascript(前台)的处理函数。 第三种 用ClientScript类动态添加脚本 用法如下:在想调用某个javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。 ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "scriptMyFun();/script"); 这个方法比Response.Write更方便一些,可以直接调用脚本文件中的自定义函数。 第四种,ClientScript.RegisterStartupScript 例子:StringBuilder sb = new StringBuilder(); sb.Append("script language='javascript'"); sb.Append("Button2_onclick('" + serverPath + "')"); sb.Append("/script"); ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString()); 第五种. 用Response.Write方法写入脚本 比如在你单击按钮后,先操作数据库,完了后显示已经完成,可以在最后想调用的地方写上
Ajax正是为了解决此类问题。
AJAX = 异步 JavaScript 和 XML。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
这样也就可以通过发送异步请求来调用后台方法。
请参考:
asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return check();" OnClick= "Button1_Click"/
check函数大概如下:
function check()
{
if(某个文本框内为空)
{
alert("请输入用户名");
return false;//一定要return
}
else if(...)
...
return true;//最后一定要return true
}
关于onclientclick和onclick:在.net 1.1中,没有onclientclick属性。当时的写法是onclick="return check();Button1_Click",那么这样不论check()返回值是true还是false都不会再提交服务器执行Button1_Click了(因为都return了,不会执行后面的代码了),这样对编码者来说增加了一些麻烦。所以在.net 2.0中Button控件增加了OnClientClick属性,在客户端需要加的javascript代码可以写在OnClientClick中,如OnClientClick="return check();"而服务器端事件Onclick="Button1_Click",代码逻辑清晰了,也无需去顾及return造成不能提交了。
可以向后台传参数加一个参数,如:type,type=1为保存按钮,type=2为提交按钮。