Here ya go, I'll do you one better. I have a hidden text field that will get validated. In the SelectedIndexChanged event, I set the value of that textbox. Here's the markup...
<%
@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" >
<
head runat="server">
<title>Untitled Page</title>
<style type="text/css">
.hdn
{
visibility:hidden;
}
</style>
</
head>
<
body>
<form id="form1" runat="server">
<div><asp:TextBox CssClass="hdn" ID="hdn" runat="Server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="hdn"
ErrorMessage="RequiredFieldValidator" ValidationGroup="val"></asp:RequiredFieldValidator>
<asp:GridView ID="grd1" runat="server" OnSelectedIndexChanged="dataGrid_SelectedIndexChanged">
<Columns><asp:CommandField ShowSelectButton="true" /></Columns>
</asp:GridView>
<br />
<asp:Button ValidationGroup="val" ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" /></div></form>
</
body>
</
html>
And here's the code-behind
protected void dataGrid_SelectedIndexChanged(object sender, EventArgs e)
{
hdn.Text = grd1.SelectedIndex.ToString();
}