我想要做的就是在gridview的标题中放置一个asp:按钮.
假设您有一个包含3列的网格视图 – id,name,family.所以,而不是标题[id,family]我希望它是[id,asp:button] – 所以按钮会有它的动作当然.
假设您有一个包含3列的网格视图 – id,name,family.所以,而不是标题[id,family]我希望它是[id,asp:button] – 所以按钮会有它的动作当然.
谢谢,
罗马.
解决方法
您需要采取的方法是将所需的GridView列设为模板字段.当您使用模板字段时,您可以将任何asp.net控件粘贴到gridview控件的每个主要部分(标题,项目,页脚等).我没有测试过这个,但原则上它看起来像这样:
<asp:GridView ID="Gridview1" runat="server"> <Columns> <asp:BoundField DataField="yourDbColumnName" HeaderText="id" /> <asp:BoundField DataField="yourDbColumnName" HeaderText="name" /> <asp:TemplateField> <HeaderTemplate> <asp:Button runat="server" ID="btnFamily" CommandName="FamilyClicked" /> </HeaderTemplate> <ItemTemplate> <asp:Literal runat="server" ID="litFamily" Text='<%# EVAL("YourDbColumnValue") %>'></asp:Literal> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
要“捕获”按钮的单击事件并使用它执行某些操作,您需要使用GridView的RowCommand事件(这是一个起点 – 再次未经测试):
Protected Sub Gridview1_RowCommand(ByVal sender As Object,ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles Gridview1.RowCommand If e.CommandName = "FamilyClicked" Then ' they clicked by grid view header's asp:button control... Response.Write("TEST") End If End Sub
这里的神奇之处在于分配按钮的CommandName属性(在这种情况下,我将其设置为“FamilyClicked”,但它可以是您想要的任何内容).
以下是GridView使用的模板字段技术的更多基础知识 – link text
希望有所帮助.