代码如下,
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>                     
                       
                        <asp:GridView ID="GridView1" runat="server" AllowSorting="True" 
                            AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" 
                            GridLines="None" Height="233px" 
                            onrowcancelingedit="GridView1_RowCancelingEdit" 
                            onrowediting="GridView1_RowEditing" Width="617px">
                            <RowStyle BackColor="#E3EAEB" />
                            <Columns>
                                <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" 
                                    ReadOnly="True" />
                                .
.
.
.
.
.
                                <asp:TemplateField HeaderText="EditRecord" ShowHeader="False">
                                    <ItemTemplate>
                                        <asp:Button ID="Button2" runat="server" CommandArgument ='<%#Eval("CustomerID") %>' CausesValidation="false" CommandName="" 
                                            Text="Edit" OnClick ="Button2_Click" />
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>                            <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                            <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                            <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                            <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                            <EditRowStyle BackColor="#7C6F57" />
                            <AlternatingRowStyle BackColor="White" />
                        </asp:GridView>  
                                                                      
                    </ContentTemplate>                    
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="TodaySession_Button" />
                        <asp:AsyncPostBackTrigger ControlID="ThisWeekSession_Button" />
                        <asp:AsyncPostBackTrigger ControlID="Search_Button" />                       
                    </Triggers>                  
                </asp:UpdatePanel>
                
                  <asp:Panel ID="Panel2" runat="server" style ="display:none ">
                          <div>
                              <asp:Button ID="Button1" runat="server" Text="Button" />
                              <asp:Button ID="Button3"
                                  runat="server" Text="Button" />
                          </div>
                  </asp:Panel>                   <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
                           DynamicServicePath="" Enabled="True" TargetControlID="button" PopupControlID ="Pane2">
                   </asp:ModalPopupExtender>                   <asp:Button ID="button" runat="server" Text="Button" style =" display:none " /> //隐藏按钮.              
            </td>在updatepanel上面有一个 gridview。在这个gridview上有一个列是template列,button2这个按钮是用来 实现 panel2 弹出的。在updatepanel下面是一个定义好的panel这个panel是想通过button2 (gridview中的一个列中的按钮)点击事件弹出。最后是一个ajax的控件Modalpopupextender.但是问题是 我的数据帮定完以后 在点击button2的时候 这个panel 没有弹出来 页面 没有任何反应 。这是问题什么啊?其实 我这个panel现在是一个实验阶段。 我真的目的是 当用户选择一个gridview上的一个纪录,这个纪录的信息将会在探出对话框中的的detailview控件中。然后 用户可以对此进行修改 最后返回数据库,gridview重新数据帮定。但是现在问题是 这个panel不弹出来。。为什么?在Modalpopupextender中的 targetControlID这个属性 如何接收button2的controlid?是哪个事件可以把 targetcontrolID = button2.id.tostring();?

解决方案 »

  1.   

    你要不直接给属性赋值:TargetControlID="button2"; 
    要不在Button2_Click事件中ModalPopupExtender1.Show();在页面中来一个隐藏控件<input id="hid" type="hidden" runat="server"/>,ModalPopupExtender的属性TargetControlID="hid";
      

  2.   

    还是不行啊 说我的targetControl 不能为Null,但是我都没找到这个targetcontrol属性在那儿。。还有一个问题就是 在代码一行一行运行的时候怎么会突然间跳出个反编译的程序 流程。这是啥???我崩溃了 看来很是简单的问题我就是解决不了 我不知道为什么啊。。邦邦我把我看到有些 高手用romcommand这个事件来对 targetControlID负值 这是为什么??在线等待。
      

  3.   

    如果你想按Button弹出框,Button的id为Button1,
    则ModalPopupExtender的TargetControlID应设置为Button1,
    如果弹出框是Panel1的话,设置Button1的PopupControlID为Panel1
    最终页面代码为:
    <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
        PopupControlID="Panel1" TargetControlID="Button1" Drag="True" >
    </ajaxToolkit:ModalPopupExtender>
      

  4.   

    这个但是关键是 我这个button是gridview里面的template button,不能直接帮定在targetcontrolid属性上阿。。这是gridview 上面的控件button 不是页面上单独的button 如果直接帮定在target controlid属性上 报错说找不到这个button。
      

  5.   

    这也是常碰到的问题!
    还是我给你的代码,将Button1的Visible设置为false,即不可见!!
    在GridView要调用这个弹出框的地方,打入以下代码:
    ModalPopupExtender1.Show();
    即可,
    要关闭:
    ModalPopupExtender1.Hide();
      

  6.   

    我照着上面的方法作了 但是 这个panel2就是弹不出来 叶面没有反应 这是为什么哪???我都崩溃了 真的不知道 怎么办 这个问题困扰我 好多天了就是解决不了 。。大家 帮帮我把
      

  7.   

    我在button2_click事件中 添加了 modalpopupextender1.show()方法 但是 点击这个按钮以后 叶面没有任何反应。。我用断点查询 程序运行没错。。这是为了什么啊 我用的是asp.net 3.5
      

  8.   

    你的panel是隐藏的,你在modalpopupextender1.show()之前是否对panel取消隐藏了?
      

  9.   

    如我和口口加一前面所说,那个隐藏的控件是一个辅助控件,你可以将他放在updatepanle的外面,然后在你的Button2单击事件里Show()一下ModalPopupExtender1,就相当于单击这个隐藏的辅助控件!弹出的控件id用PopupControlID标识,但弹出的控件的display:block,再试试吧!
    我没用过3.5的.netframework,我用过2.0的!
      

  10.   

    我做的就是和你们说的一样 看看我上面的代码 就是一个隐藏得按钮 给popupcontrolID 然后再button2的事件中show一下。。但是就是出不来 页面也没有反应 这是为什么啊? 我上面的代码 没有错误啊就是不知道 怎么不跳出来。。是不是updatapanel的事情???我崩溃了。。大家把我的代码复制一下 帮我改改 实在不行我把我项目的 代码连数据库一起发上来。。?
      

  11.   

    哪个属性是panel的隐藏属性???
      

  12.   

    哈哈 lvfeng19806001 谢谢 我的panel是隐藏了 我修改了属性 就显示出来了 太感谢你了 哈哈哈 我郁闷斯了 就为了这个属性每更改。。都是网上的例子都没有改属性这个语句。。唉。呵呵怎么给你分哪。。