从modalpopupextender面板获取数据

时间:2013-01-03 06:51:19

标签: c# asp.net gridview

我有一个GridViewGridView中的一列,其linkButton点击后会打开modalpopupextender。我能够在popextender面板中绑定数据,但现在我想从该面板中检索数据。 我从每个GridRow获取数据,如:

 foreach (GridViewRow row in MyGridView.Rows)
 {                   
     Label Date = (Label)row.Cells[0].FindControl("DateId");
     string date = Date.Text;
     //Code to get linkButton(asp:ModalpopUpextender) and data from  
     //asp:panel of ModalpopUpextender
  }

我一直在寻找答案,但无法找到问题的解决方案。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

假设你有这样的设置

<ajaxToolKit:ModalPopupExtender 
            ID="mdlPopup" runat="server" TargetControlID="btnShowPopup" PopupControlID="pnlPopup" 
            CancelControlID="btnClose" BackgroundCssClass="modalBackground" />
        <asp:Panel ID="pnlPopup" runat="server" Width="500px" style="display:none">
            <asp:UpdatePanel ID="updPnlCustomerDetail" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:Label ID="lblCustomerDetail" runat="server" Text="Customer Detail"  Width="95%" />

                </ContentTemplate>                
            </asp:UpdatePanel>

您可以尝试先找到您的面板,然后深入查看所需的控件。我建议将此代码放入行编辑事件

 gridViewTest_RowEditing(object sender, GridViewEditEventArgs e)
 {

gridViewTest.EditIndex=e.NewEditIndex;
Panel myPanel =    (Panel)gridViewTest.Rows(gridViewTest.EditIndex).FindControl("pnlPopup");
Label myLabel = (Label)myPanel.Findcontrol("lblCustomerDetail");
   }

//然后用标签做点什么。

答案 1 :(得分:1)

感谢Abide的有用帖子......最后我找到了解决方案......

Panel.FindControl("ControlId");

无法正常工作,因为somtimes面板未添加到页面中。

我们可以使用此代码。它工作正常。

foreach( Control cntrl in Panel.Controls ) 
{   
  if(cntrl.ID == "RequiredConteolId")    
   {
      //your application code goes here...
   } 
}