我正在建立一个网站,我将有一个页面显示产品图片、产品名称和一小段来自我的sql database
.
当我单击产品名称时,我希望能够看到产品的完整详细信息,我将如何执行此操作?
我不是要免费代码或任何我想指出正确方向的东西。
当我将新产品添加到我的数据库产品表中时,这些产品页面也应该动态添加。
将产品详情放入 a 中Panel
,并将其可见状态默认设置为 false。当用户单击图像/按钮/任何内容时,使用客户端代码显示产品详细信息面板。
这是一个快速而肮脏的例子:
<script type="text/javascript">
showDetails = function(){
var el = document.getElementById("productDetails");
if (el){
el.style.display = "block";
}
}
</script>
<!-- here is the equivalent of your image -->
<input type="button" value="Show Details" id="btnShowDetails" onclick="showDetails();" />
<!-- here is the equivalent of a panel containing the product details -->
<div id="productDetails" style="display:none;">
This is a cool product!
</div>
这是一个快速演示,您可以看到它的工作原理。显然你的实现会更复杂,但这应该会让你朝着正确的方向前进。祝你好运!
对于要动态添加的产品页面,您正在寻找的可能是一个ASHX
处理程序。您制作了一个 .aspx 页面,当它接收到参数时,该页面通常会显示给定产品的数据。然后ASHX
处理程序像这样工作:它获取 URL 的相关部分,解析它的参数,将请求转发到传递它提取的参数的给定页面,最后为页面的内容提供服务。实际上,对于此类处理程序提供的功能之一,这是一个非常肤浅的外观 - 但请看一下它们。
如果您希望产品详细信息显示为用户当前正在浏览的页面的元素,而不是将它们重定向到新页面,您可以使用jQuery
添加一个div
(您可以将其设置为看起来像气球或任何其他噱头)。在里面div
你可以有一个iframe
,或者只是一个panel
,你可以动态地提供有关产品的数据。
如果我会这样做,我会通过路由在这里阅读更多内容来做到这一点
http://msdn.microsoft.com/en-us/library/cc668201.ASPX
反过来看起来像这样
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteTable.Routes.MapPageRoute("StoreRoute","Products/{ProductNumber}","~/Webpages/BookStore/ViewBookDemo.aspx");
}
int productnumber = Convert.ToInt(Page.RouteData.Values["ProductNumber"]);
if (productnumber != null)
{
if (ProductNumber == 1)
{
Image1.ImageUrl = "~/images/css.jpg";
}
else if (productnumber == 2)
{
Image1.ImageUrl = "~/images/django.jpg";
}
else if (productnumber == 3)
{
Image1.ImageUrl = "~/images/iphone.jpg";
}
else if (productnumber == 4)
{
Image1.ImageUrl = "~/images/Linq.jpg";
}
}
}