2009-01-22 66 views
1

当前我正在使用GridView和GridView的RowCommand事件,所选行的详细信息显示在Gridview下方。但现在我必须在点击的行下方显示细节。意味着它将显示在所选行和下一行之间。 GridView的代码是是否有可能在GridView行之间显示RowCommand事件

<asp:GridView ID ="gvUserDataReadOnly" AutoGenerateColumns ="false" runat ="server" OnRowCommand ="gvUserDataReadOnly_RowCommand" DataKeyNames ="Guid"> 
     <Columns > 
      <asp:ButtonField ItemStyle-Width ="100px" DataTextField ="FirstName" HeaderText ="<%$ Resources:StringsRes,pge_ContactManager_FirstName %>" SortExpression ="FiratName" CommandName ="show_Details" ButtonType ="link" /> 
      <asp:ButtonField ItemStyle-Width ="100px" DataTextField ="LastName" HeaderText ="<%$ Resources:StringsRes,pge_ContactManager_LastName %>" SortExpression ="LastName" CommandName ="show_Details" ButtonType ="link" />     
      <asp:BoundField ItemStyle-Width ="100px" DataField ="TypeName" HeaderText ="<%$ Resources:StringsRes,pge_ContactManager_TypeName %>" SortExpression ="TypeId" /> 
     </Columns> 
     <RowStyle Height="25px" /> 
     <HeaderStyle Height="30px"/> 
    </asp:GridView> 

和div标签,我想速滑运动员的肌肉行显示的是

<div id ="dvUserDatails" runat ="server" visible ="false" class ="eventcontent"> 
     <h2><asp:Literal ID ="ltUserName" runat ="server" ></asp:Literal></h2> 
     <asp:Label Text ="Type : " runat ="server" ID ="Type"></asp:Label><asp:Literal ID ="ltType" runat ="server" ></asp:Literal><br /> 
     <asp:Label Text ="Address : " runat ="server" ID ="Address"></asp:Label><asp:Literal ID ="ltAddress" runat ="server" ></asp:Literal><br /> 
     <asp:Label Text ="Phone No : " runat ="server" ID ="PhoneNo"></asp:Label><asp:Literal ID ="ltPhoneNo" runat ="server" ></asp:Literal><br /> 
     <asp:Label Text ="Mobile No : " runat ="server" ID ="MobNo"></asp:Label><asp:Literal ID ="ltMobNo" runat ="server" ></asp:Literal><br /> 
     <asp:Label Text ="Email Id : " runat ="server" ID ="emailId"></asp:Label><asp:Literal ID ="ltemail" runat ="server" ></asp:Literal><br /> 
    </div> 

,因为我没有使用的GridView的编辑按钮,我不能使用EditItem模板。任何人都可以告诉我如何完成这项任务?任何其他方式来做到这一点?提前致谢。

回答

1

您可能想要使用Repeater并自己构建表。我不认为你能够使GridView工作,因为你只能控制每行中的内容,而你想要做的是在一般信息和详细信息之间交替行。有关如何将其连接到数据源并处理按钮点击的更多信息,请参阅MSDN

<asp:Repeater ID="gvUserDataReadOnly" runat="server" DataKeyNames="Guid"> 
    <HeaderTemplate> 
     <table> 
     <tr> 
      <th>Header 1</th> 
      ... 
     </tr> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr> 
      <td> 
      ... first name button ... 
      </td> 
      ... 
     </tr> 
    </ItemTemplate> 
    <AlternatingItemTemplate> 
     <tr runat="server" visible="false"> 
     <td colspan="3"> 
      ... details (minus div) here ... 
     </td> 
     </tr> 
    </AlternatingItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 
-1

是 - GridView控件可以做的正是你想要的。

<asp:GridView ...> 
    <RowStyle ...> 
    <Columns> 
     <asp:TemplateField> 
      <HeaderTemplate> 
      </HeaderTemplate> 
      <ItemTemplate> 
      </ItemTemplate> 
      <FooterTemplate> 
      </FooterTemplate 
     </asp:TemplateField> 
    </Columns>  
</asp:GridView> 

HeaderTemplate和FooterTemplate是可选的 - 我认为即使ItemTemplate是可选的。无论如何,你可以在这些标签内放置任何东西 - 甚至是另一个gridview。

+0

没有适当的例子或链接给出的问题 – Aruna 2016-09-01 17:46:47

相关问题