当前位置:编程学习 > C#/ASP.NET >>

SOS!!!!史上最大迷思!求助在按钮事件里面获取repeater里数据!!!

--------------------编程问答-------------------- 每次你的标题最雷人, --------------------编程问答-------------------- 优惠券的ID和数量 在当前表单里应该是有体现的,那么在点击的时候传递过去就可以了 --------------------编程问答--------------------
引用 2 楼 Return_false 的回复:
优惠券的ID和数量 在当前表单里应该是有体现的,那么在点击的时候传递过去就可以了



不带这样站着说话不腰疼的···亲······ --------------------编程问答-------------------- 放2个Literal控件,绑定ID跟数量
然后在按钮事件里面循环Repeater的Item找控件 --------------------编程问答--------------------
引用 4 楼 aluogang 的回复:
放2个Literal控件,绑定ID跟数量
然后在按钮事件里面循环Repeater的Item找控件


能具体一点吗····
伦家不会写·········· --------------------编程问答--------------------
引用 5 楼 Sophiatangrongxiang 的回复:
引用 4 楼 aluogang 的回复:
放2个Literal控件,绑定ID跟数量
然后在按钮事件里面循环Repeater的Item找控件

能具体一点吗····
伦家不会写··········

洒家硬是没看懂.. --------------------编程问答-------------------- 用LinkButton OnCommand,设置CommandName,CommandArgument,在CS中通过参数e的获得上面的属性
也可以重写Repeater的OnItemDataBound事件 --------------------编程问答-------------------- http://www.cnblogs.com/ANDY_ZHANG/archive/2010/11/08/1872050.html --------------------编程问答-------------------- for (int i = 0; i < detailrepeater.Item.Count; i++)
{
Literal ltID = detailrepeater.Item[i].FindControl("ltID") as Literal;
Literal ltNum = detailrepeater.Item[i].FindControl("ltNum") as Literal; 
}
--------------------编程问答-------------------- <li class="li_2">
<asp:Literal ID="ltID" runat="server" Text=' <%#Eval("优惠卷ID")%>' Visible="false" ></asp:Literal>
<asp:Literal ID="ltNum" runat="server" Text=' <%#Eval("数量")%>' Visible="false" ></asp:Literal>
<%#Eval("name")%></li>
加入购物车按钮里面写
for (int i = 0; i < detailrepeater.Item.Count; i++)
{
Literal ltID = detailrepeater.Item[i].FindControl("ltID") as Literal;
Literal ltNum = detailrepeater.Item[i].FindControl("ltNum") as Literal; 

}
--------------------编程问答--------------------
引用 10 楼 aluogang 的回复:
<li class="li_2">
<asp:Literal ID="ltID" runat="server" Text=' <%#Eval("优惠卷ID")%>' Visible="false" ></asp:Literal>
<asp:Literal ID="ltNum" runat="server" Text=' <%#Eval("数量")%>' Visible="false" ></a……



去试试先,辛苦啦! --------------------编程问答--------------------
引用 10 楼 aluogang 的回复:
<li class="li_2">
<asp:Literal ID="ltID" runat="server" Text=' <%#Eval("优惠卷ID")%>' Visible="false" ></asp:Literal>
<asp:Literal ID="ltNum" runat="server" Text=' <%#Eval("数量")%>' Visible="false" ></a……



这个数量不是直接从数据库读出来就行 用户可以直接点加或者减的     --------------------编程问答-------------------- 那你就获取文本里面的值 --------------------编程问答--------------------
引用 13 楼 aluogang 的回复:
那你就获取文本里面的值



protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < detailrepeater.Item.Count; i++)
            {
                Literal ltID = detailrepeater.Item[i].FindControl("ltID") as Literal;
                Literal ltNum = detailrepeater.Item[i].FindControl("ltNum") as Literal;

            }

        }

是在按钮事件里面这样写吗?

说是这控件不包含item定义··· --------------------编程问答-------------------- Items````````我是笨笨···· --------------------编程问答-------------------- 要获取Reapter中的控件可以在Reapter的ItemDataBound事件中得到 --------------------编程问答-------------------- 随笔啊你怎么写都是可以的
只要对于每一行有相应具有唯一性ID就可以
把这个ID绑在模板列中一个隐藏域中 --------------------编程问答-------------------- 没有说完 继续。
添加repeater的rowCommand事件
按钮添加commandName属性,在RowCommand事件中作为判断依据
在时间中首先找到你点击的这行,比如
RepeaterItem item = (RepeaterItem)((Button)e.CommandSource).Parent.Parent;
然后用item的findControl方法找到你存储唯一ID的隐藏域
后面就可以操作了
--------------------编程问答-------------------- 现在我的问题是获取不到当前优惠券的数量
数量的获取和赋值是在js里面的
<li class="li_4">
                        <asp:HiddenField ID="ltNum" runat="server" />
                        <p class="sp1">
                            我要买 :</p>
                        <a class="cut" href="javascript:void(0)" price="<%#Eval("Price")%>" yuanjia="<%#Eval("YuanJia")%>">
                        </a><span class="sp2" id='sp_<%#Eval("ID") %>'>1</span> <a class="add" href="javascript:void(0)"
                            price="<%#Eval("Price")%>" yuanjia="<%#Eval("YuanJia")%>"></a></li>





点点击加减的时候触发这个js事件
// 购物数量增加减少

$(function() {
    $(".cut").click(function(event) {
        var num = Number($(this).parent().find('span').html());
        var price = parseFloat($(this).attr("price"), 10);
        var account = parseFloat($("#heji").text(), 10);
        var account2 = parseFloat($("#yixuan").text(), 10);
        var price2 = parseFloat($(this).attr("yuanjia"), 10);
        if (num <= 1) {
            $(this).parent().find('span').html(1);
            $(this).parent().find('hidden').eq(0).val(1);
        }
        else {
            $(this).parent().find('span').html(num - 1);
            $("#heji").text(account - price);
            $("#yixuan").text(account2 - price2);
            $(this).parent().find('hidden').eq(0).val(num - 1);
//            alert($(this).parent().find('hidden').eq(0).val());
        }
    });
});

$(function() {
    $(".add").click(function(event) {
        var num = Number($(this).parent().find('span').html());
        var price = parseFloat($(this).attr("price"), 10);
        var account = parseFloat($("#heji").text(), 10);
        var account2 = parseFloat($("#yixuan").text(), 10);
        var price2 = parseFloat($(this).attr("yuanjia"), 10);
        $(this).parent().find('span').html(num + 1);
        $("#heji").text(account + price);
        $("#yixuan").text(account2 + price2);
        $(this).parent().find('hidden').eq(0).val(num + 1);
//        alert($(this).parent().find('hidden').eq(0).val());
    });
}); 



在这里为隐藏域赋值了,值没有赋值进去,在按钮事件里面,获取不到值!!
求教求教!!!!!




--------------------编程问答--------------------
引用 13 楼 aluogang 的回复:
那你就获取文本里面的值


以上问题请教啊! --------------------编程问答-------------------- 怎么叫做在按钮事件里获取不到值?是找不到这个控件,还是获取的值不对(总是1?)


引用 19 楼 Sophiatangrongxiang 的回复:
现在我的问题是获取不到当前优惠券的数量
数量的获取和赋值是在js里面的
<li class="li_4">
                        <asp:HiddenField ID="ltNum" runat="server" />
                        <p class="sp1">
                  ……

--------------------编程问答-------------------- 什么是屎上最大迷思,我晕,这么基本操作的也喊得那么恐怖

你就差别人给你现成的代码了。
10楼的朋友已经给出了解决办法了
在按钮事件里面写就是了 --------------------编程问答--------------------
引用 21 楼 hhwolf76 的回复:
怎么叫做在按钮事件里获取不到值?是找不到这个控件,还是获取的值不对(总是1?)


引用 19 楼 Sophiatangrongxiang 的回复:
现在我的问题是获取不到当前优惠券的数量
数量的获取和赋值是在js里面的
<li class="li_4">
                        <asp:HiddenField ID="ltNum" runat="serve……



取到的值是空的,  $(this).parent().find('hidden').eq(0).val(1);
在js里面赋值的时候就没赋进去
我想问的是,为什么这句话没给隐藏域赋值赋进去? --------------------编程问答--------------------
引用 22 楼 zooen2011 的回复:
什么是屎上最大迷思,我晕,这么基本操作的也喊得那么恐怖

你就差别人给你现成的代码了。
10楼的朋友已经给出了解决办法了
在按钮事件里面写就是了


我写了出现了问题啊!你有什么资格这样说我! --------------------编程问答--------------------
引用 24 楼 Sophiatangrongxiang 的回复:
引用 22 楼 zooen2011 的回复:什么是屎上最大迷思,我晕,这么基本操作的也喊得那么恐怖

你就差别人给你现成的代码了。
10楼的朋友已经给出了解决办法了
在按钮事件里面写就是了

我写了出现了问题啊!你有什么资格这样说我!

说你还需要资格?你不懂,别人说你就受不了?说你几下你损失什么了?
什么是虚心学习?你这心态···切
感情好像你写了出问题是别人的错是吧 --------------------编程问答--------------------
引用 25 楼 zooen2011 的回复:
引用 24 楼 Sophiatangrongxiang 的回复:
引用 22 楼 zooen2011 的回复:什么是屎上最大迷思,我晕,这么基本操作的也喊得那么恐怖

你就差别人给你现成的代码了。
10楼的朋友已经给出了解决办法了
在按钮事件里面写就是了

我写了出现了问题啊!你有什么资格这样说我!
说你还需要资格?你不懂,别人说你就受不了?说你几下你损失什么了?
什么是虚心学习……



我问你了吗?我在请教别人,你又给不了我实质性的帮助,你有什么资格在旁边唧唧歪歪的?
我对那些真心诚意帮我的人,态度心态肯定是绝对的虚心和感谢,但是你算什么?
我写出了问题就还要再来问啊?我说了是别人的错吗?
你算个什么东西?
看不惯我就不要进来唧唧歪歪,如果你没有白内障的话,这是我发的帖子,好吗? --------------------编程问答-------------------- 现在我的问题就是
怎样用js给Repeater里面的隐藏域赋值


因为隐藏域放在repeater里面以后ID都变了,不能直接获取ID来赋值。


请教各位!!!谢谢!!! --------------------编程问答-------------------- clientID --------------------编程问答--------------------
引用 27 楼 Sophiatangrongxiang 的回复:
因为隐藏域放在repeater里面以后ID都变了,不能直接获取ID来赋值。

var sel=repeater.getElementsByTagName("input");
    for(var i=0;i<sel.length;i++)
    {
if(input.type == "hidden" && inputs[i].id.match("rrr"))
 {
alert(sel[i].id);
 }
   }
<input type="hidden" id="rrr" runat="server" /> --------------------编程问答-------------------- if(input.type == "hidden" && inputs[i].id.match("rrr"))
==>if(sel.type == "hidden" && sel[i].id.match("rrr")) --------------------编程问答--------------------
引用 26 楼 Sophiatangrongxiang 的回复:
引用 25 楼 zooen2011 的回复:引用 24 楼 Sophiatangrongxiang 的回复:
引用 22 楼 zooen2011 的回复:什么是屎上最大迷思,我晕,这么基本操作的也喊得那么恐怖

你就差别人给你现成的代码了。
10楼的朋友已经给出了解决办法了
在按钮事件里面写就是了

我写了出现了问题啊!你有什么资格这样说我!
说你还需要资……

前面那么多答案,已经足够了,是你不懂,怪谁?
你不懂,说你几下你损失什么了?那么小气干鸟
----------
"因为隐藏域放在repeater里面以后ID都变了"你就不试试用name属性,使用ajax的post方法赋值,并Request.Form取值? --------------------编程问答-------------------- var sel=document.getElementById("XXXX").getElementsByTagName("input");
    for(var i=0;i<sel.length;i++)
    {
if(sel[i].type == "hidden" && sel[i].id.match("rrr"))
 {
alert(sel[i].id);
 }
   }
<input type="hidden" id="rrr" runat="server" />
好了这样可以了。刚才有点问题。 --------------------编程问答--------------------
引用 31 楼 zooen2011 的回复:
引用 26 楼 Sophiatangrongxiang 的回复:
引用 25 楼 zooen2011 的回复:引用 24 楼 Sophiatangrongxiang 的回复:
引用 22 楼 zooen2011 的回复:什么是屎上最大迷思,我晕,这么基本操作的也喊得那么恐怖

你就差别人给你现成的代码了。
10楼的朋友已经给出了解决办法了
在按钮事件里面写就是了

我写了出现了问题……



好吧  其实是我问题拖了很久没解决  心情比较烦躁  其实你也没说我什么
不好意思
你也知道的  唯小人与女子难养也 --------------------编程问答-------------------- var ltNum =document.getElementById("<%=ltNum.ClientID%>"); --------------------编程问答--------------------
引用 27 楼 Sophiatangrongxiang 的回复:
现在我的问题就是
怎样用js给Repeater里面的隐藏域赋值


因为隐藏域放在repeater里面以后ID都变了,不能直接获取ID来赋值。


请教各位!!!谢谢!!!
你是要赋值数量吗,在 "+","-"a标签上写click事件,然后将隐藏域放在一个好点的位置,比如"+","-"a标签的后面,click赋值的时候就是$(this).next()就获取隐藏域的dom元素了。 --------------------编程问答--------------------  $(this).parent().find(':hidden').eq(0).val(num + 1);
加冒号就行了
谢谢你们!!! --------------------编程问答-------------------- submit表单吧 --------------------编程问答-------------------- 以为什么呢!还想长见识呢..乱叫 --------------------编程问答-------------------- 楼主标题写得不错。 --------------------编程问答-------------------- 亲爱的,这就是cookies加ajax处理哦.http://www.school51.com/Sell/shoppingcart.aspx先添加几个商品,然后在这个页面看看,所有操作前端源码都在“页面源文件”里面包括js处理价格计算 --------------------编程问答-------------------- 飘过飘过!!!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,