[已解决问题] 一个小问题,最近又碰到了 :)
提问时间: 2007-12-14 11:24
悬赏分:10 浏览:761 次

<asp:Button ID="BTN_Exchange" runat="server" Text="兑换" CommandArgument='<%#Eval("GiftId")%>' OnClientClick="return confirm('确认使用<%#Eval("Score")%>兑换该礼品吗?');" OnCommand="BTN_Exchange_Command"/>

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

OnClientClick="return confirm('确认使用<%#Eval("Score")%>兑换该礼品吗?');"

这里该怎么写?



问题补充:这个Button是在<asp:Repeater>里面的,fuction buyConfirm(){
return confirm("<%# Eval("Score")%>兑换该礼品吗?");
}
这个倒是可以提示,问题是很绑定数据同样多的buyConfirm(),点按钮只提示最后一个buyConfirm()
-----------------------------------------------------------
再次补充:
Shing Ye 所说的方法应该是可以的
也可以订阅repeater的绑定事件,然后用FindControl取出该button再设置其OnClientClick属性
--------------------
都不可行,编译通不过去,订阅repeater的绑定事件 这样效率太低了,只为了显示作用的提示,没必要了。

最佳答案
Shing Ye 所说的方法应该是可以的
也可以订阅repeater的绑定事件,然后用FindControl取出该button再设置其OnClientClick属性
2007/12/14 13:50:04 回答者:Klesh Wong
其它回答(3)
OnClientClick="return confirm('确认使用"<%#Eval('Score')%>"兑换该礼品吗?');" 
??好久不用asp.net了,哎
8个月前   回答者:麒麟.NET - 小虾三级
不能这样使用,试试这个:
OnClientClick='<%# "return confirm('" + Eval("Score") + "兑换该礼品吗?');"%>'
8个月前   回答者:Shing Ye - 初学一级
应该是写到一个js函数里面,然后在button的OnClientClick俩面调用函数吧
fuction buyConfirm(){
    return confirm("<%# Eval("Score")%>兑换该礼品吗?");
}

应该是这样吧
8个月前   回答者:JesseZhao - 菜鸟二级
评论
8个月前   Shing Ye :
问题是"<%# Eval("Score")%>兑换该礼品吗?"这里面的是按原样输出的..
8个月前   Klesh Wong :
aspx:

    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server"></asp:Label><br />
        <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
        <ItemTemplate>
        <div class="item">
            Name : <%# Eval("Name")%>
            <asp:Button ID="BTN_Exchange" runat="server" Text="兑换" CommandArgument='<%#Eval("GiftId")%>' OnClientClick='<%# "return confirm(\"" + Eval("Score") + "兑换该礼品吗?\");"%>' OnCommand="BTN_Exchange_Command" />
        </div>
        </ItemTemplate>
        </asp:Repeater>
    
    </div>
    </form>

aspx.cs:

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                BindData();
        }

        private void BindData()
        {
            IList<Gift> gifts = new List<Gift>();
            for (int i = 0; i < 10; i++)
            {
                Gift gift = new Gift();
                gift.GiftId = i;
                gift.Name = "Gift #" + i.ToString();
                gift.Score = i;
                gifts.Add(gift);
            }
            Repeater1.DataSource = gifts;
            Repeater1.DataBind();
        }

        protected void BTN_Exchange_Command(object sender, CommandEventArgs e)
        {
            Label1.Text = "阅 换 : " + e.CommandArgument.ToString();
        }


8个月前   Klesh Wong :
订阅repeater的ItemDataBound事件与直接Eval是不会有差别的.
而且订阅事件未必比Eval慢, 因为 Eval 是基于反射了.
8个月前   Hunts.C :
还可以这样
OnClientClick='<%# String.Format("return confirm(\"确认使用{0}兑换该礼品吗?\")", Eval("Score")) %>'
或者这样
OnClientClick='<%# Eval("ID","return confirm(\"确认使用{0}兑换该礼品吗?\")") %>'
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除