这个问题的后续问题对我有很大的帮助。 ASP.NET AJAX Toolkit ModalPopupExtender inside ListView behavior
我的网站是一个商店,产品在一个类中设置,根据它们所属的类别进行调用。用户可以单击产品以获取在新页面中打开的信息。
我想使用模式弹出扩展程序将此页面显示为弹出窗口,而不是导航到新页面。 感谢上面的链接,我几乎可以实现这一点,我的问题是我不能将方法“GetProducts”调用到listview所在的listview中。
这是aspx页面
<div id="Panel1" style="display: none;" class="popupConfirmation">
<iframe id="frameeditexpanse" src="ProductDetails.aspx?productID=<%#:Item.ProductID%>" height="161" > // here is the error item does not exist in the context
</iframe>
<div class="popup_Buttons" style="display: none">
<input id="btnClose" value="Close" type="button" />
</div>
</div>
<asp:ListView ID="productList" runat="server" DataKeyNames="ProductID"
GroupItemCount="3" ItemType="Website.Models.Product" SelectMethod="GetProducts"> // method is called here
<ajaxToolkit:ModalPopupExtender runat="server" ID="ModalPopupExtender1"
CancelControlID="btnClose" TargetControlID="PopUpPage"
PopupControlID="Panel1" Drag="true" BackgroundCssClass="ModalPopupBG"
PopupDragHandleControlID="PopupHeader" >
</ajaxToolkit:ModalPopupExtender>
<asp:ImageButton ID="PopUpPage" runat="server"
src="<%#:Item.ImagePath%>" width="100" height="75" /> // button the user clicks to open the pop up of the product description page
和背后的代码如果有帮助
public partial class ProductList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public IQueryable<Product> GetProducts([QueryString("id")] int? categoryId)
{
var _db = new Website.Models.ProductContext();
IQueryable<Product> query = _db.Products;
if (categoryId.HasValue && categoryId > 0)
{
query = query.Where(p => p.CategoryID == categoryId);
}
return query;
}
}
我已经尝试在ifview中包装iframe,所以我可以再次调用该方法,但这告诉我我只能调用一次,我也试过在页面加载部分调用方法没有快乐,还有许多其他的事情,造成更多错误。
任何帮助将不胜感激。