Hi,, I m trying to create an online examination module which has to be very simple.... But what i want to do is to store a large number of questions and to obtain on 25 questions from it randomly, so that no two persons logging in same time may have the same questions.... then i just show all of them in a grid view.. in grid view i add a label and a radio button list to show the questions and their qbjective options..... but the problem is that when i select the options and try to submit the selected index changed dramaticaaly other than the selection that we choose by our own... I m attaching the code of the page below... please review it .. and any help in this context is highly apprecuiated.... using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; public partial class Student_Panel_TakeExam : System.Web.UI.Page { Stud_Panel sp = new Stud_Panel(); int sid, subid; DataSet ds, dsSession; protected void Page_Load(object sender, EventArgs e) { // sid = Convert.ToInt32(Session["SID"]); sid = 20; //THIS IS THE STUDENT ID JUST FOR TESTING //subid = Convert.ToInt32(Request.QueryString[0]); subid = 1; // THIS IS THE SUBJECT ID JUST FOR TESTING PURPOSE if (!IsPostBack) { Session["Question"] = sp.GetQuesForExams(subid); // THIS FUNCTION ALWAYS OBTAIN THE QUESTIONS IN RANDOM ORDER dsSession = (DataSet)Session["Question"]; // THIS IS TO PUT THE OBTAIND SHUFFLED QUESTIONS IN THE SESSION VARIABLE GridView1.DataSource = dsSession; GridView1.DataBind(); for (int i = 0; i < dsSession.Tables[0].Rows.Count; i++) { Control ctrl = GridView1.Rows.Cells[0].FindControl("lblQues"); // I HAVE ADDED A LABEL IN TEMPLATE FIELD OF THE GRIDVIEW Label lblCtrl = ctrl as Label; lblCtrl.Text = "<h3>" + (i + 1).ToString() + ". " + dsSession.Tables[0].Rows["Question"].ToString() + ".<br></h3>"; Control ctrl1 = GridView1.Rows.Cells[0].FindControl("rbl"); RadioButtonList rblctrl = ctrl1 as RadioButtonList; int option = 3, ans = 5; // TO GET THE POSITIONS OF OPTIONS AND ANSWERS IN THE DATASET for (int j = 0; j < 4; j++) { ListItem li = new ListItem(); // CREATE A LIST VIEW AS TO POPULATE THE RADIOBUTTON LIST li.Text = dsSession.Tables[0].Rows[option].ToString(); li.Value = dsSession.Tables[0].Rows[ans].ToString(); //"<img src='30-02012010056.jpg' />"; rblctrl.Items.Add(li); option = option + 3; ans = ans + 3; } } } } protected void btnSubmit_Click(object sender, EventArgs e) { dsSession = (DataSet)Session["Question"]; int count = 0; for (int i = 0; i < dsSession.Tables[0].Rows.Count; i++) { Control ctrl1 = GridView1.Rows.Cells[0].FindControl("rbl"); RadioButtonList rblctrl = ctrl1 as RadioButtonList; Label1.Text += "<br>" + rblctrl.SelectedItem; } } }