Tuesday, March 13, 2012

Setting the selected value to a radio button

I want to set the selected value of a radio button from the value that I have stored in a database. Do I do this by binding it to a sql reader...my wrong code below

sqlConn.Open();
sqlCmd =

newSqlCommand("SELECT * FROM menuToggle", sqlConn);
sqlRdr = sqlCmd.ExecuteReader();
radlMenuToggle.DataSource = sqlRdr;/*while (sqlRdr.Read()){
Response.Write(sqlRdr["menuToggle"]);
}*/
radlMenuToggle.SelectedItem = 1;
radlMenuToggle.DataBind();
sqlRdr.Close();
sqlConn.Close();

What I am trying to do is set the radio button to be the value that I have in the database and then when the user changes the value and clicks the save button it will store the new value in the database

full code:

sqlConn.Open();
sqlCmd =newSqlCommand("SELECT * FROM menuToggle", sqlConn);
sqlRdr = sqlCmd.ExecuteReader();//radlMenuToggle.DataSource = sqlRdr;
//radlMenuToggle.DataBind();while (sqlRdr.Read()){
//Response.Write(sqlRdr["menuToggle"]);
radlMenuToggle.SelectedValue =Convert.ToString(sqlRdr["menuToggle"]);
}

sqlRdr.Close();
sqlConn.Close();

void saveMenu(Object s,EventArgs e){
sqlCmd =newSqlCommand("UPDATE menuToggle SET menuToggle=@.menuToggle WHERE menuKey=@.menuKey", sqlConn);
sqlCmd.Parameters.Add("@.menuToggle", radlMenuToggle.SelectedValue);
sqlCmd.Parameters.Add("@.menuKey", 1);
sqlConn.Open();
sqlCmd.ExecuteNonQuery();
sqlConn.Close();
}

<asp:RadioButtonListID="radlMenuToggle"runat="server">
<asp:ListItemText="Show RSVP"Value="1"/>
<asp:ListItemText="Hide RSVP"Value="0"/>
</asp:RadioButtonList>

<tablewidth="124"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdwidth="25"height="15"></td>
<tdwidth="99"></td>
</tr>
<tr>
<tdheight="19"valign="top"></td>
<tdvalign="top"><asp:ButtonID="Button1"OnClick="saveMenu"Text="Save"runat="server"/></td>
</tr>
</table>


The solution ended up with me using selectedIndex and theOnSelectedIndexChanged event in RadioButtonList. This link also helped
http://msconline.maconstate.edu/tutorials/ASPNET2/ASPNET06/aspnet06-03.aspx

Solution Code Below

void Page_Load(){

//getting value for radio button

sqlConn.Open();
sqlCmd =

newSqlCommand("SELECT * FROM menuToggle", sqlConn);
sqlRdr = sqlCmd.ExecuteReader(); while (sqlRdr.Read()){
radlMenuToggle.SelectedIndex = (int)sqlRdr["menuToggle"];
}
sqlRdr.Close();
sqlConn.Close();

}

void newRadioButtonValue(Object s,EventArgs e) {

if (radlMenuToggle.SelectedIndex == 0){
radlMenuToggle.SelectedIndex = 1;
}

else{
radlMenuToggle.SelectedIndex = 0;
}
}

void saveMenu(Object s,EventArgs e){
sqlCmd =newSqlCommand("UPDATE menuToggle SET menuToggle=@.menuToggle WHERE menuKey=@.menuKey", sqlConn);
sqlCmd.Parameters.Add("@.menuToggle", radlMenuToggle.SelectedIndex);
sqlCmd.Parameters.Add("@.menuKey", 1);
sqlConn.Open();
sqlCmd.ExecuteNonQuery();
sqlConn.Close();
}

<asp:RadioButtonListID="radlMenuToggle"OnSelectedIndexChanged="newRadioButtonValue"runat="server">
<asp:ListItemText="Show RSVP"Value="0"/>
<asp:ListItemText="Hide RSVP"Value="1"/>
</asp:RadioButtonList>

0 comments:

Post a Comment