首先在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;
- }