У меня есть раскрывающийся список, содержащий пробел, Да и Нет. Если пользователь выбирает Нет, я хочу, чтобы Label1 сказал "Больше информации не требуется".
Я получаю nullreferenceexception при отладке. Значение в SQL db поля равно NULL, когда пользователь получает доступ к раскрывающемуся списку, я хочу, чтобы они могли выбирать "Да" или "Нет", а также если они выбрали и сохранили "Да" "или" Нет "ранее, я также хочу, чтобы они могли вернуться и выбрать пустое, которое будет возвращать NULL в базу данных.
Какой самый простой способ справиться с этим? Я предполагаю, что ошибка выбрасывается из-за значения NULL в БД?
Код:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
SelectedValue='<%# Bind("BlahBlah") %>'
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem></asp:ListItem>
<asp:ListItem>Yes</asp:ListItem>
<asp:ListItem>No</asp:ListItem>
</asp:DropDownList>'
полный cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FrontEnd_v1
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (DropDownList1.SelectedValue == "No")
{
Label1.Text="No Further Info Required";
}
else
{
Label1.Text="";
}
}
}
}
designer.cs:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace FrontEnd_v1 {
public partial class WebForm1 {
/// <summary>
/// FormView1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.FormView FormView1;
/// <summary>
/// RM_Remediation control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.SqlDataSource SQLSource;
/// <summary>
/// Button1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button Button1;
protected global::System.Web.UI.WebControls.DropDownList DropDownList1;
protected global::System.Web.UI.WebControls.Label Label1;
}
}
Если он показывает NULL в SQL, это означает, что на нем не было введено никакого значения. Вы можете захотеть повторно внедрить значения в свою БД, потому что NULL - это фактически пустое поле.
попробуйте этот код. Добавить значение в ListItem.
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
SelectedValue='<%# Bind("BlahBlah") %>'
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem></asp:ListItem>
<asp:ListItem Value="Yes" Text="Yes"></asp:ListItem>
<asp:ListItem Value="No" Text="No"></asp:ListItem>
</asp:DropDownList>'
Label1
?