[ASP.NET]GridView触发SelectedIndexChanged事件

来源:互联网 发布:侠客风云传 mac 编辑:程序博客网 时间:2024/05/13 16:55

好久没有搞ASP.Net了,发现有好多的东西都忘记了,现在在这里记录一下,以后用的时候可以拿出来看看

关于Silverlight的记录现在实在是没有时间了,上个项目刚搞完,这个项目马上就来了,还得天天加班,一点空闲都没有,反正得抽点事件来整理一下

废话不说了,整理一下

首先在GridView中必须加上“选择”的按钮,然后在Page_Load中添加

protected void Page_Load(object sender, EventArgs e)        {            gvTest.SelectedIndexChanged+=new EventHandler(GridView1_SelectedIndexChanged);        }

最后在点击绑定的GridView项的时候就可以触发SelectedIndexChanged事件了。

这里我把“选择”按钮设置成了TemplateField,然后让它的Text绑定Email字段,数据库的其余字段也可以绑定到GridView上,但是在这个程序里我把他们的可见属性都设置成了False。

页面代码:

<body>    <form id="form1" runat="server">    <div style="overflow-y: auto; width: 100%; height: 100%">        <asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="False"             DataKeyNames="UserId" DataSourceID="SqlDataSource1" ShowHeader ="false">            <Columns>                <asp:BoundField DataField="UserId" HeaderText="UserId" InsertVisible="False"                     ReadOnly="True" SortExpression="UserId" Visible="False" />                <asp:BoundField DataField="EMail" HeaderText="EMail" SortExpression="EMail"                     Visible="False" />                <asp:BoundField DataField="Passwd" HeaderText="Passwd" SortExpression="Passwd"                     Visible="False" />                <asp:BoundField DataField="LastLogin" HeaderText="LastLogin"                     SortExpression="LastLogin" Visible="False" />                <asp:TemplateField ShowHeader="False">                    <ItemTemplate>                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"                             CommandName="Select" Text='<%# Bind("EMail", "{0}") %>'></asp:LinkButton>                    </ItemTemplate>                </asp:TemplateField>            </Columns>        </asp:GridView>        <br />        <br />        <asp:Label ID="lblRegionCaption" runat="server" Text="Label"></asp:Label>        <br />        <asp:SqlDataSource ID="SqlDataSource1" runat="server"             ConnectionString="<%$ ConnectionStrings:vMessageCenterConnectionString %>"             SelectCommand="SELECT [UserId], [EMail], [Passwd], [LastLogin] FROM [Users]">        </asp:SqlDataSource>    </div>    </form>

在页面中加入了垂直滚动条。

SelectIndexChenged事件的代码:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)        {            int index = GridView1.SelectedIndex;            string ID = GridView1.SelectedDataKey.Values["UserId"].ToString();            lblRegionCaption.Text = ID;            GridViewRow row = GridView1.SelectedRow;        }


这里大家可以根据需要,写各自的代码了。