js调用后台程序绑定repeater,但是在使用这个repeater中的数据时,其记录值为0 js调用后台程序绑定repeater,但是在使用这个repeater中的数据时,其记录值为0 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在描述一下我的问题:在后缀名为.aspx中写了一个给repeater绑定数据源的函数,在aspx页面中通过js调用这个函数,给repeater绑定了数据,然后又出发了一个button事件,这个事件操作repeater,读取repeater中的记录,但此时repeater.items.Count为0,不知为什么 你js怎么调用后台函数的?把你绑定repeater的代码发上来。 js代码function GetName(){var id1=<%=showColumn()%>;}后台函数showColumn(){ repeater绑定数据源。} 你alert一下id1,我觉得应该是null,哪怕不是null,它也只是一个object对象,并不能达到你调用后台方法的目的。这种设计是不可取的,要不就不要用repeater,改用ajax的方式,调用后台方法,获得数据库的数据,然后,用js操作dom元素,生成二维表格;要不就全部用后台按钮,使用后台方法来更新数据。如果你真心想要js控制按钮,按钮点击后更新数据,你可以这样做。页面上设置两个按钮,分别如下:<input type="button" id="b1" value="button1" onclick="document.getElementById('b2').click();" /><asp:Button ID="b2" runat="Server" Text="Button2" Visible="false" OnClick="Button2_Click" />b1是一个客户端按钮,b2是个服务端按钮,b2不可见,并且b2有一个后台事件,在后台方法中刷新repeater的数据。点击b1按钮,触发b2按钮的点击,这样可以达到你的要求吧!甚至,你还可以在b1的客户端点击事件中加一些逻辑判断,或者弹出确认对话框,等等:<input type="button" id="b1" value="button1" onclick="if(confirm('确认?')){ document.getElementById('b2').click();}" /> 楼上方法也行,跟我前一种方法的结果是一样的,还是0;大体是这样的,我有一个下拉框,譬如选项:1,2,3.选择1,或着2,或者3会让后台的一个函数执行repeater绑定一次,但是我不希望刷新页面,所以用到了js去调用后台这个函数执行。接着,我又通过另一个button触发事件,然后获取repeater的items.count,结果返回的是0,不知为何。你上面的方法我试了,结果一样。帮忙想想是什么原因,我现在把我的测试代码发出来,望能帮我解决。谢谢 后台程序,关于数据源没有贴出来。 protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { int id = Repeater1.Items.Count; Response.Write(id.ToString()); } protected string showColumn() { Repeater1.DataSource = "一个数据源"; Repeater1.DataBind(); return Repeater1.Items.Count.ToString(); }前台: <script type="text/jscript"> function getname() { var id="<%=showColumn() %>"; } </script></head><body> <form id="form1" runat="server"> <div> <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <%#Eval("AdminID")%> </ItemTemplate> </asp:Repeater> <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick=" getname()" onclick="Button1_Click" /> </div> </form></body> vb.net有没有关键字相当于c#中的this? 依赖 和 关联,大家多多来例子吧 生成静态页面直接通过url抓取有什么坏处 .net程序 本地没有问题,IIS上有问题 FCKeditor中如何把图片路径取出来? DataGrid怎样实现统计某一列数字的总和.net 1.1环境 ASP.NET如何单机列表像添加到一个文本框 关于数剧库中使用相对路经 json时间转换问题 数据怎么连不上啊! 如何记录浏览历史? ASP.net中实现九九乘法表(行和列由两个文本框控制)
{
var id1=<%=showColumn()%>;
}
后台函数showColumn()
{
repeater绑定数据源。
}
页面上设置两个按钮,分别如下:
<input type="button" id="b1" value="button1" onclick="document.getElementById('b2').click();" />
<asp:Button ID="b2" runat="Server" Text="Button2" Visible="false" OnClick="Button2_Click" />b1是一个客户端按钮,b2是个服务端按钮,b2不可见,并且b2有一个后台事件,在后台方法中刷新repeater的数据。
点击b1按钮,触发b2按钮的点击,这样可以达到你的要求吧!甚至,你还可以在b1的客户端点击事件中加一些逻辑判断,或者弹出确认对话框,等等:
<input type="button" id="b1" value="button1" onclick="if(confirm('确认?')){ document.getElementById('b2').click();}" />
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
int id = Repeater1.Items.Count;
Response.Write(id.ToString());
}
protected string showColumn()
{
Repeater1.DataSource = "一个数据源";
Repeater1.DataBind();
return Repeater1.Items.Count.ToString();
}
前台:
<script type="text/jscript">
function getname() {
var id="<%=showColumn() %>";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%#Eval("AdminID")%>
</ItemTemplate>
</asp:Repeater>
<asp:Button ID="Button1" runat="server" Text="Button"
OnClientClick=" getname()" onclick="Button1_Click" />
</div>
</form>
</body>