This way
HTML:
<asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:RadioButton ID="rbSelectRow" runat="server" onclick="RadioCheck(this);" Text="Select" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="30" />
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Address">
<ItemTemplate>
<asp:TextBox ID="txtAddress" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="btnSave" Text="Save" runat="server" />
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)) });
dt.Rows.Add(1, "John Hammond");
dt.Rows.Add(2, "Mudassar Khan");
dt.Rows.Add(3, "Suzanne Mathews");
dt.Rows.Add(4, "Robert Schidner");
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
Script
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
function RadioCheck(rb) {
var rbs = $('[id*=GridView1]').find('input');
var row = $(rb).parent().find('tr');
for (var i = 0; i < rbs.length; i++) {
if (rbs[i].type == "radio") {
if (rbs[i].checked && rbs[i] != rb) {
rbs[i].checked = false;
break;
}
}
}
}
</script>
<script type="text/javascript">
$(document).ready(function () {
$('[id*=btnSave]').click(function () {
$('[id*= GridView1] tr td:nth-child(1)').each(function () {
var rb = $(this).find('[id*=rbSelectRow]');
if (rb.is(':checked')) {
if ($.trim($(('[id*= txtAddress]'), $(rb).closest('tr')).val()) == "") {
alert('Please Enter Address');
}
}
});
});
});
</script>
Screenshot