2013-10-30 82 views
0

我有一个TemplateField内具有了LinkBut​​ton一个GridView:链接按钮导致错误

enter image description here

<asp:GridView CssClass="hoursGrid" ID="hoursReportGridView" runat="server" AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84" 
     BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" DataSourceID="SqlDataSource2" OnRowDataBound="hoursReportGridView_OnRowDataBound"> 
     <Columns> 
      <asp:BoundField DataField="Person" HeaderText="Person" SortExpression="Project" /> 
      <asp:BoundField DataField="Project" HeaderText="Project" SortExpression="Project" /> 
      <asp:BoundField DataField="ProjectType" HeaderText="Project Type" ReadOnly="True" SortExpression="Sprint" ItemStyle-HorizontalAlign="Center" /> 
      <asp:BoundField DataField="StoryNumber" HeaderText="Story Number" SortExpression="Story" ItemStyle-Width="6%" ItemStyle-HorizontalAlign="Center" /> 
      <asp:BoundField DataField="StoryTitle" HeaderText="Story Title" SortExpression="Story" ItemStyle-Width="20%" /> 
      <asp:BoundField DataField="Task" HeaderText="Task" SortExpression="Task" ItemStyle-Width="20%" /> 
      <asp:BoundField DataField="Monday" HeaderText="Monday" ReadOnly="True" SortExpression="Monday" ItemStyle-HorizontalAlign="Right" /> 
      <asp:BoundField DataField="Tuesday" HeaderText="Tuesday" ReadOnly="True" SortExpression="Tuesday" ItemStyle-HorizontalAlign="Right" /> 
      <asp:BoundField DataField="Wednesday" HeaderText="Wednesday" ReadOnly="True" SortExpression="Wednesday" ItemStyle-HorizontalAlign="Right" /> 
      <asp:BoundField DataField="Thursday" HeaderText="Thursday" ReadOnly="True" SortExpression="Thursday" ItemStyle-HorizontalAlign="Right" /> 
      <asp:BoundField DataField="Friday" HeaderText="Friday" ReadOnly="True" SortExpression="Friday" ItemStyle-HorizontalAlign="Right" /> 
      <asp:BoundField DataField="Saturday" HeaderText="Saturday" ReadOnly="True" SortExpression="Saturday" ItemStyle-HorizontalAlign="Right" /> 
      <asp:BoundField DataField="Sunday" HeaderText="Sunday" ReadOnly="True" SortExpression="Sunday" ItemStyle-HorizontalAlign="Right" /> 
      <asp:TemplateField HeaderText="Total" ItemStyle-HorizontalAlign="Right"> 
       <ItemTemplate> 
        <asp:LinkButton ID="taskLinkButton" Text='<%# Eval("Total") %>' Visible='<%# Eval("StoryTitle").ToString() != "" %>' runat="server" OnClick="taskLinkButton_Click" /> 
        <asp:Literal ID="Literal1" Text='<%# Eval("Total") %>' Visible='<%# Eval("StoryTitle") == "" %>' runat="server" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

当我点击一个链接我希望出现一个弹出:

<ajaxToolkit:ModalPopupExtender ID="MPE" runat="server" 
    TargetControlID="taskLinkButton" 
    PopupControlID="infoPanel" 
    DropShadow="true"> 
</ajaxToolkit:ModalPopupExtender> 
<asp:Panel ID="infoPanel" runat="server">CONTENT HERE</asp:Panel> 

但是我收到以下错误:

TargetControlID 'MPE'无效。无法找到ID为'taskLinkBut​​ton'的控件。

如果我在页面上放置一个链接按钮并将targetControlId改为它,弹出工作正常。我怎样才能让它与我的GridView中的链接按钮一起工作?

回答

1

让您可以通过它您可以隐藏,可见=假电网外的目标ID设置为链接按钮将其添加到每一行。然后在点击事件只是调用MPE.Show()

+0

PJM我同意你的答案。但是,如果mpe的内容是特定于行的,它必须在gridview中。 –

+0

作为附加说明,visible = false不起作用,但您可以使用CSS隐藏该按钮。 –

+1

@DavidTunnell自从我做了这样的事情已经有一段时间了,但是我认为你是对的。 Uros您在单击事件上填充面板。 – PJM

2

MPE和目标控件必须位于同一个命名容器中。

移动你的mpe在gridview里,你有链接按钮打开mpe。

问候, 乌罗什

+0

谢谢,我没有得到一个错误了,但面板仍然没有打开,当我点击按钮。我该如何解决? –

+0

大卫使用显示方法在mpe作为@ mpj消化 –