-1
我有一個從數據庫填充的下拉列表。這工作正常。它具有約束力並按預期顯示正確的數據。但是,當我更改它的值並嘗試將其保存到數據庫時,沒有任何內容正在保存,這會導致NULL異常。DropDownList沒有設置的值
這裏是我的C#代碼:
protected DropDownList ddStatus;
protected RadioButtonList rblInternalNotes;
public void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
ValidateSession();
ddStatus_Bind();
rblInternalNotes.Items.Insert(0,new ListItem("External","0"));
rblInternalNotes.Items.Insert(1,new ListItem("Internal","1"));
btnSave.Attributes.Add("onClick","return checkForm();");
/* code continues */
}
爲了測試我的保存按鈕,我使用的是這樣的:
public void btnSave_OnClick(object Sender, System.Web.UI.ImageClickEventArgs E)
{
Response.Write(ddStatus.SelectedValue);
Response.End();
爲綁定的代碼是:
protected void ddStatus_Bind()
{
SqlConnection Conn = GetConnection();
string SQL;
SqlCommand Cmd;
SqlDataAdapter DAdpt = new SqlDataAdapter();
DataSet DSet = new DataSet();
SQL = "SELECT Name,StatusID FROM tbl_test";
Cmd = new SqlCommand(SQL,Conn);
DAdpt.SelectCommand = Cmd;
DAdpt.Fill(DSet);
ddStatus.DataSource = DSet;
ddStatus.DataBind();
Conn.Close();
}
而且這是我的前端代碼:
<TR ID="trStatus" RunAt="Server" visible="false">
<TD Class="Spreadsheet"><B>Status</B></TD>
<TD Class="Spreadsheet">
<ASP:DropDownList ID="ddStatus" DataTextField="Name" DataValueField="StatusID" AppendDataBoundItems="True" RunAt="Server"></ASP:DropDownList>
</TD>
</TR>
保存按鈕:
<ASP:ImageButton ID="btnSave" OnClick="btnSave_OnClick" ImageURL="/images/buttons/btnSave.gif" Border="0" RunAt="Server"/>
,我有
<FORM EnableViewState = false runat="server">
的表單標籤和
<%@ Page Language="C#" debug="True" Inherits="Default" src="Default.cs" validateRequest="false" EnableEventValidation="false"%>
的頁面標籤。
如果我在表單標籤中刪除EnableViewState = false
,它將起作用,但僅在第二次點擊後才起作用。它不會在第一次點擊時保存。
任何人都可以請幫忙嗎?一如既往地感謝。
keep'ddStatus_Bind();'IsPostBack'條件檢查 – techspider
現在它的值是否始終是第一個。 –
不錯,你的代碼沒有錯;現在將其保存在IsPostBack中並在Page標籤上添加EnableViewState =「true」'。 – techspider