Com*_*umb 3 javascript c# asp.net repeater
我正在学习C#并在我的第一个ASP.Net电子商务网站上工作.
我有以下转发器:
<asp:Repeater ID="Cartridges" runat="server" OnItemCommand="Cartridges_ItemCommand">
<ItemTemplate>
<asp:LinkButton ID="buy" runat="server" CommandName="AddtoCart" CommandArgument=<%#Eval("cartID") %> Text="Buy"></asp:LinkButton>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
但是,当呈现代码时,转发器会生成JavaScript以进行回发,如果用户关闭了JavaScript,则填充购物车时效果不佳!
<div class="wrap-cart">
<div class="cartbuy"><a id="ContentPlaceHolder1_Cartridges_buy_0" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Cartridges$ctl00$buy','')">Buy</a></div>
<div class="cartimg"><a href="url.html" class="productsurl"><img src="pic/epson-comp-set50.jpg" alt="product" /></a></div>
<div class="carttext">
<p class="cartdesc"><a href="url.html" class="productsurl"><span class="homeprinters">product</span></a></p>
<p class="cartprice">£x.xx</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我想要做的就是将cartID传递给数据表.有没有办法围绕它,所以JavaScript根本没有涉及?
为了完整性,我的代码背后是:
protected void Cartridges_ItemCommand(object source, RepeaterCommandEventArgs e)
{
cartidtest.Text = "added";
if (e.CommandName == "AddtoCart")
{
string varCartID = (e.CommandArgument).ToString();
//more code here
}
}
Run Code Online (Sandbox Code Playgroud)
当然,您可以通过QueryString传递选定的ItemID
首先,生成一个这样的锚标记:
<a href="NextCheckoutStep.aspx?ItemID=45">AddToCart</a>
Run Code Online (Sandbox Code Playgroud)
这可以在ItemTemplate中完成:
<a href='<%# "NextCheckoutStep.aspx?ItemID=" + Eval("ItemID").ToString() %>'>AddToCart</a>
Run Code Online (Sandbox Code Playgroud)
最后,在NextCheckoutStep.aspx中,访问:
Request.QueryString["ItemID"]
Run Code Online (Sandbox Code Playgroud)
笔记
| 归档时间: |
|
| 查看次数: |
1823 次 |
| 最近记录: |