除一个输入按钮外,其他所有输入按钮都可以工作
本文关键字:输入 按钮 其他 都可以 工作 一个 | 更新日期: 2023-09-27 18:25:27
已解决我刚刚使用asp:Repeater来处理按钮,效率更高。
我用foreach循环创建了多个表,每个表都包含一个按钮,该按钮指向一个单独的页面。这只是按钮的html代码。
<form name='input' action='AuctionDetails.aspx' method='get'>
<input type='submit' value='Bid now' name='{5}'/>
</form>
现在,我有很多迭代(大约50次),ALL按钮都能工作,除了第一个。即使当我过滤结果(返回更少的表)时,除了第一个按钮,所有的按钮都能工作。
这是完整的方法。
private void FillPageAuctions()
{
IEnumerable<AuctionClass> query = null;
var context = new AuctionsEntities();
string queryString = Request.QueryString.ToString();
if (Request.QueryString.ToString() != "")
{
query = from e in context.Auctions
where e.Category.Name == queryString
select e;
}
else
{
query = from e in context.Auctions select e;
}
StringBuilder sb = new StringBuilder();
if (query.Count() == 0)
{
sb.Append("There are no auctions in this category.");
}
else
{
foreach (AuctionClass auction in query)
{
string temp = auction.AuctionName;
if (auction.AuctionName.Length > 12)
{
temp = auction.AuctionName.Remove(12);
temp = temp + "...";
}
sb.Append(String.Format(@"<table style='border: 1px solid #666666;
float:left;
width: 24%;
margin: 0px 3px 3px 3px;
text-align: center;'>
<tr><th style='font-size: 18px'>{0}</th></tr>
<tr><td><img src='{1}' height='100px' width='100%'/></td></tr>
<tr><td>Price: ${2}</td></tr>
<tr><td>Time Left: </td></tr>
<tr><td>{3} hours</td></tr>
<tr><td>{4} minutes</td></tr>
<tr><td>
<form name='input' action='AuctionDetails.aspx' method='get'>
<input type='submit' value='Bid now' name='{5}'/>
</form>
</td></tr></table>", temp, "Untitled.png",
auction.CurrPrice, 0, 0, auction.AuctionID));
}
}
AuctionListLabel.Text = sb.ToString();
}
在ASP.NET页面中,不能放置多个Form标记
单一表单模型是实现ASP.NET状态维护功能的关键元素。由于页面总是发布到自己,运行时发现很容易检索和恢复上次访问期间保存的状态。虽然还有其他方法可以保存和恢复页面状态,但使用单一表单模型是迄今为止所有解决方案中最简单、最有效的。
如果您将提交按钮的名称更改为您有多少个值:name="/0-50/",您可以创建一个简单的循环,通过使用计数器变量返回要提交的值。