从后端代码显示模态弹出窗口错误

3

我有一个包含ASP.NET图像服务器控件ID="imgCart"的数据列表。现在,当用户单击图像按钮时,我想显示一个模态弹出窗口。由于每个产品都必须具有不同的说明,因此我需要从代码后台填充网格视图。以下是该代码:

asp:DataList Id=:ImageList" OnItemCommand="Item_Command" > ItemTemplate > asp:ImageButton Id=: "imgcart"

代码后台:

protected void Item_Command(Object sender, DataListCommandEventArgs e)
    {

        ImageButton img = (ImageButton)e.Item.FindControl("imgcart");
        string idProduct = img.ToolTip.Trim();
        ModalPopupExtender1.Show();
    }

一切都运行正常,只是模态弹窗没有显示。

模态弹窗的代码被放置在 datalist 外部。

 <cc1:ModalPopupExtender ID="ModalPopupExtender1"
     PopupControlID="PopupPanel" TargetControlID="imgcart" 
    runat="server">
   </cc1:ModalPopupExtender>



  <asp:panel id="PopupPanel" runat="server" BorderStyle="Groove" 
   BorderColor="black" BorderWidth="3px" BackColor="AliceBlue" 
   Height="200px" Width="200px" style="display: none"> 
       <asp:Label ID="lblPopup" runat="server" Text="popup!"></asp:Label><br />
        <br />
      <asp:DropDownList ID="ddlData" runat="server">
       </asp:DropDownList><br />
                    <br />              
       <asp:Button ID="btnPopupOK" runat="server" Text="Ok" />             
       <asp:Button ID="btnPopupCancel" runat="server" Text="Cancel" />         
     </asp:panel> 

错误信息

System.InvalidOperationException: “ModalPopupExtender1”的TargetControlID无效。找不到ID为“imgcart”的控件。

请帮忙解决问题。我想从后台代码中显示模态弹出窗口!

Edit1

当我将ajax modalpopup放在数据列表中时,它会显示模态弹出窗口,但不会进入后台代码,我需要一个后台事件来获取产品ID。


我认为无法将模态弹出窗口绑定到imgcart控件,因为在运行时数据列表中没有这样的控件,控件名称显示为一些ctrl_contentplaceholder1 ..... - Chris
1个回答

3
添加一个带有 Display:none 属性的按钮。
<asp:ImageButton ID="imgcart" runat="server" style="display:none;" />

希望对您有所帮助。


@Pankaj Agarwal感谢您的回复,但是对我没有帮助。我仍然收到相同的错误信息。 - Chris
@Pankaj Agarwal,很抱歉我做不到这一点,因为这是数据列表中每个产品的购物车图像,我需要在用户单击此购物车图像时打开模态弹出窗口。 - Chris
涉及按钮的ID并不是真正重要的。重要的是从触发事件中获取ID - 我建议使用CommandArgument来实现。 - Dave
@Dave,在 datalist 中我找不到 CommandArgument。你能帮我解决吗? - Chris
抱歉,我的意思是你需要一种更好的方法来返回到放入工具提示中的数据。e.Item.DataItem应该能够让你回到原始数据项 - 从中选择正确的属性放入你的模态弹出窗口中。 - Dave
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接