如何将xxx.aspx页面上的js脚本调用xxx.aspx.cs中的方法
今天写js,做出了一个图片轮播图的效果,后来想把轮播图的图片能跟sql关联起来,只要新添加的图片就能自动在轮播图里显示,可是想了好久没做出来。因为不知道如何能把js里的代...
今天写js,做出了一个图片轮播图的效果,后来想把轮播图的图片能跟sql关联起来,只要新添加的图片就能自动在轮播图里显示,可是想了好久没做出来。因为不知道如何能把js里的代码跟xxx.aspx.cs里的方法关联。很纠结。页面中的关键代码大致如下:<div id="imgADPlayer"></div><script> PImgPlayer.addItem( "白色恋人", "#", "images/banner1.jpg"); PImgPlayer.addItem( "白色恋人", "#", "images/banner2.jpg"); PImgPlayer.addItem( "白色恋人", "#", "images/banner3.jpg"); PImgPlayer.addItem( "白色恋人", "#", "images/banner4.jpg"); PImgPlayer.addItem( "白色恋人", "#", "images/banner5.jpg"); PImgPlayer.addItem( "白色恋人", "#", "images/banner6.jpg"); PImgPlayer.addItem( "白色恋人", "#", "images/banner7.jpg"); PImgPlayer.addItem( "白色恋人", "#", "images/banner8.jpg"); PImgPlayer.addItem( "白色恋人", "#", "images/banner9.jpg"); PImgPlayer.init( "imgADPlayer", 977, 304 );</script><!--轮播图片--></div>后台的sql语句如下:select top(9) Pid,PName,PUrl,PImg from product order by Pid descxxx.aspx.cs中的方法如下:protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { InitAddItem(); } } private void InitAddItem() { List<Products> list = (List<Products>)ProductsDAL.GetProForBanner(); for (int i = 0; i < 9; i++) { indexForm.Attributes.Add("onload","javascript:addItem("+list[i].PName+","+list[i].PUrl+","+list[i].PImg+")"); } }请问我该怎么做,是哪里写错了吗?还是我的思路不对呢?像高手请教
展开
1个回答
展开全部
可以直接在后台返回一个字符串,也可以便用一般处理程序。
//返回字符串方法
//方法很简单就是把JS代码和数据混合成字符串,然后向前台输出
//因方法需在前台调用所以定义成 public ,方法返回一个字符串,
public string InitAddItem()
{
System.Text.StringBuilder retstr = new System.Text.StringBuilder();
//List<Products> list = (List<Products>)ProductsDAL.GetProForBanner();
//假设调用方法返回一个dataset
DataSet ds = ProductsDAL.GetProForBanner();
int tmp = ds.Tables[0].Rows.Count;
for (int i = 0; i < tmp; i++)
{
// Pid,PName,PUrl,PImg ,将你所要的数据写入字符串
retstr.Append("PImgPlayer.addItem( \"" + ds.Tables[0].Rows[i]["PName"] + "\", \"#\", \"" + ds.Tables[0].Rows[i]["PImg"] + "\");");
}
retstr.Append(" PImgPlayer.init(\"imgADPlayer\", 977, 304);");//最后加上你的调用
return "<script>" + retstr.ToString() + " </script>";//返回整个脚本块
}
//返回字符串方法前台调用
<div id="imgADPlayer">
</div>
//直接调用InitAddItem方法。
<%=InitAddItem()%>
//脚本中是不能调用CS页面中的方法的,但是脚本却能调用一般处理程序(ASHX)页面中的方法
如果觉得上面返回字符串的方法不行可以用ASHX``楼主可以直接百度.net一般处理程序
如果还有不懂可加QQ229161146
//返回字符串方法
//方法很简单就是把JS代码和数据混合成字符串,然后向前台输出
//因方法需在前台调用所以定义成 public ,方法返回一个字符串,
public string InitAddItem()
{
System.Text.StringBuilder retstr = new System.Text.StringBuilder();
//List<Products> list = (List<Products>)ProductsDAL.GetProForBanner();
//假设调用方法返回一个dataset
DataSet ds = ProductsDAL.GetProForBanner();
int tmp = ds.Tables[0].Rows.Count;
for (int i = 0; i < tmp; i++)
{
// Pid,PName,PUrl,PImg ,将你所要的数据写入字符串
retstr.Append("PImgPlayer.addItem( \"" + ds.Tables[0].Rows[i]["PName"] + "\", \"#\", \"" + ds.Tables[0].Rows[i]["PImg"] + "\");");
}
retstr.Append(" PImgPlayer.init(\"imgADPlayer\", 977, 304);");//最后加上你的调用
return "<script>" + retstr.ToString() + " </script>";//返回整个脚本块
}
//返回字符串方法前台调用
<div id="imgADPlayer">
</div>
//直接调用InitAddItem方法。
<%=InitAddItem()%>
//脚本中是不能调用CS页面中的方法的,但是脚本却能调用一般处理程序(ASHX)页面中的方法
如果觉得上面返回字符串的方法不行可以用ASHX``楼主可以直接百度.net一般处理程序
如果还有不懂可加QQ229161146
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询