【问题标题】:JavaScript alert from button inside asp.net DataList来自 asp.net DataList 中按钮的 JavaScript 警报
【发布时间】:2016-10-16 23:28:25
【问题描述】:

如何从 Asp.Net DataList 内的按钮单击事件中显示 JavaScript 警报或引导模式消息。 这是我的数据列表:

     <asp:DataList ID="dListProduct" runat="server" RepeatColumns="4" OnItemCommand="dListProduct_ItemCommand" AutoPostBack="true">
    <ItemTemplate>
        <div>
            <table class="table-responsive" border="1">
                <tr>
                     <td>
                          <asp:Label runat="server" Text="Id" ></asp:Label><asp:Label ID="lblPId" runat="server" Text='<%# Eval("Product_Id")%>' Visible="true"></asp:Label>
                    </td>
                </tr>
                <tr>
                     <td>
                         <asp:Button id="btnAddtoCart" runat="server" Text="Add to Cart" CommandName="save" CommandArgument="save" OnClick="btnAddtoCart_Click"/>
                    </td>
                </tr>
            </table>
        </div>
    </ItemTemplate>
</asp:DataList>

下面是代码:

 protected void dListProduct_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "save")
            {
                Label Id = (Label)e.Item.FindControl("lblPId");
                Label Name = (Label)e.Item.FindControl("lblProductName");
                Label Stock = (Label)e.Item.FindControl("lblStock");
                Label Price = (Label)e.Item.FindControl("lblPrice");
                if (Stock.Text.Equals("0"))
                    return;

                bool check = false;

                foreach (Cart c in GenericCart.cart)
                {
                    if (c.ProductId == Convert.ToInt64(Id.Text))
                    {
                        c.Qty += 1;
                        c.Total = (c.Price * c.Qty);
                        check = true;
                        Response.Write("<script>alert('Hello');</script>");
                        break;
                    }
                }
                if (!check)
                {
                    Cart c = new Cart();
                    c.ProductId = Convert.ToInt64(Id.Text);
                    c.ProductName = Name.Text;
                    c.Qty = 1;
                    c.Price = (float)Convert.ToDecimal(Price.Text);
                    c.Total = (float)Convert.ToDecimal(Price.Text);
                    GenericCart.cart.Add(c);
                    Response.Write("<script>alert('Hello');</script>");
                }              
            }
        }

但此脚本消息永远不会显示。 有人可以帮忙吗?

【问题讨论】:

标签: javascript c# asp.net twitter-bootstrap


【解决方案1】:

如果您希望在代码隐藏之前触发警报,您​​可以在按钮上使用 OnClientClick 属性,或者在代码隐藏中使用 Page.RegisterStartupScript 注册一个 javascript 函数以在回发完成后执行。

MSDN article on usage of RegisterStartupScript

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 2011-01-04
    • 2014-09-10
    • 2021-10-23
    相关资源
    最近更新 更多