2012-06-02 38 views
0

我试图在用户单击GridView中的LinkBut​​ton时显示Modal Popup。 我为测试放置了一个断点,但它似乎没有通过ModalPopupExtender.Show()事件,当我单击GridView中的Linkbutton时。GridView中Modal Popup Extender的解决方案

protected void lnkItemName_Click(object sender, EventArgs e) 
{<---Break Point 
    ModalPopupExtender.Show(); 
} 

    <asp:GridView ID="grvItem" runat="server" AutoGenerateColumns="False" 
     DataSourceID="SqlDataSourceItem" onrowdatabound="grvItem_RowDataBound" 
     DataKeyNames="ID">         
     <Columns>     
      <asp:TemplateField >               
       <ItemStyle Font-Size="10" /> 
       <HeaderTemplate> 
        ITEM 
       </HeaderTemplate> 
       <ItemStyle Wrap="True" /> 
       <ItemTemplate>           
        <asp:LinkButton ID="lnkItemName" runat="server" Text='<%# Eval("NAME") %>' CssClass="h7" Width="100" OnClick="lnkItemName_Click"></asp:LinkButton> 
        <asp:Panel ID="pnlItem" runat="server" Style="display: none" Width="400px" Height="400px" BackColor="White"> 
         <div style="float: right;"> 
          <asp:LinkButton ID="lnkClose" runat="server">Close</asp:LinkButton> 
         </div> 
         <asp:TextBox ID="txt" runat="server">asdf</asp:TextBox> 
        </asp:Panel> 
        <asp:ModalPopupExtender ID="extPerson" runat="server" TargetControlID="lnkItemName" 
         PopupControlID="pnlItem" DropShadow="true" CancelControlID="lnkClose" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

回答

1

“lnkItemName”是“extPerson”一个的TargetControlID,所以“lnkItemName_Click”不会被调用在所有 - 它改为由ModalPopupExtender和“pnlItem”处理是automagicaly所示。如果你想,你可以删除TargetControlID属性,然后在服务器上调用“lnkItemName_Click”,所以你可以显示“pnlItem”manualy - 但是,你首先必须以某种方式找到正确的“extPerson”控制(每行都有一个),将其转换为ModalPopupExtender,然后调用Show()。长话短说,只需简单地删除OnClick事件,它的用法 - 如果Modal Popup没有显示它现在的样子,那么其他的东西是错误的。

0

这样做:

<ajaxToolkit:ModalPopupExtender runat="server" ID="mdlImageDetails" TargetControlID="mdConfirmbtn" 
     PopupControlID="modelDiv" BackgroundCssClass="modalBackground" > 
    </ajaxToolkit:ModalPopupExtender> 
    <asp:Button runat="server" ID="mdConfirmbtn" Style="display: none;" /> 

然后在代码中,你可以通过调用.show().hide()方法手动控制ModalPopUp。

相关问题