У меня тоже была та же проблема (и я использовал тот же учебник). Если вы используете JQuery, мое решение может работать для вас. В функции rowCreated у меня есть это:
int index = e.Row.RowIndex;
Literal output = (Literal)e.Row.FindControl("RadioButtonMarkip");
output.Text=string.Format("<input type=\"radio\" name=\"Default_Group\" " + "id=\"RowSelector{0}\" value=\"{0}\" ", e.Row.RowIndex);
//check radio button if selected before
if (DefaultSeletectedIndex == e.Row.RowIndex || (!Page.IsPostBack && e.Row.RowIndex==0))
{
output.Text += "checked=\"checked\"";
}
output.Text += "onclick = \"jQuery.fn.post_Default("+index+")\" />";
Тогда на стороне JS:
<script type="text/javascript">
jQuery.fn.post_Default=function(){
$.post("YourPage.aspx", {Default: arguments[0]});
};
</script>
Теперь все, что вам нужно, - это загрузка страницы, чтобы проверить Request.Form ["Default"] для значения индекса вашего проверенного переключателя. Возможно, это не самый элегантный способ сделать это, но пока что это работает. Я также играю с идеей просто использовать для этого функцию $ .ajax jquery. Я думаю, что это может быть немного чище, но пока это работает.