ASP.NET Radio-Button-Liste | SelectedValue kommen NULL
Ich habe eine ähnliche RBL Frage habe ich aber ein neues Problem entstehen, so dass ich dachte, ich würde einen neuen Eintrag machen.
Hier ist mein code:
Page_Load
protected void Page_Load(object sender, EventArgs e)
{
//Output Success/Error Message
if (Session["formProcessed"] != null)
{
Label lblMessage = (Label)Master.FindControl("lblMessage");
new Global().DisplayUserMessage("success", Session["formProcessed"].ToString(), lblMessage);
}
Session.Remove("formProcessed");
if (Page.IsPostBack == false)
{
rblContentTypesGetAll.DataBind();
}
}
rblContentTypesGetAll_Load
protected void rblContentTypesGetAll_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(Global.conString))
using (SqlCommand cmd = new SqlCommand("contentTypeGetAll", con))
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(dt);
}
//Clear Items before reloading
rblContentTypesGetAll.Items.Clear();
//Populate Radio button list
for (int i = 0; i < dt.Rows.Count; i++)
{
rblContentTypesGetAll.Items.Add(new ListItem(dt.Rows[i]["contentType"].ToString() + " - " + dt.Rows[i]["description"].ToString(),
dt.Rows[i]["ID"].ToString()));
}
//Set Default Selected Item by Value
rblContentTypesGetAll.SelectedIndex = rblContentTypesGetAll.Items.IndexOf(rblContentTypesGetAll.Items.FindByValue(((siteParams)Session["myParams"]).DefaultContentType.ToLower()));
}
}
HTML/ASP.NET-front-end -
<asp:RadioButtonList id="rblContentTypesGetAll" OnLoad="rblContentTypesGetAll_Load" runat="server">
</asp:RadioButtonList>
Sobald ich das Formular abschicken es scheint, die selectedValue
leer wird. Was mache ich, das ist so offensichtlich falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl alle von Euch waren hilfreich, das Problem war viel tiefer. Ich hatte viewState deaktiviert.
view-state
Alle den code in Ihre
Page_Load
muss drin sein:Sind Sie wieder-Befüllen der Liste, wenn die Seite übermittelt wird, wodurch die Liste neu gefüllt werden, und damit verlieren die vorherigen Gegenstände einschließlich von denen man gewählt wurde.
Versuchen, indem Sie Ihre erforderliche Bindung in der page_load-nicht vergessen (!IsPostBack)
Die einzige Sache, die ich denke, dass könnte passiert sein wird, wenn Sie den ursprünglichen ausgewählten index hier:
könnte es nicht finden, den Wert und dann die Einstellung "-1". Dann, wenn Sie nicht immer wählen Sie eine radio-Taste auf der Seite, die Sie erhalten würden, keinen ausgewählten Wert.
Ich versuchte dies und es schien in Ordnung: