-1
データベースからドロップダウンリストが作成されています。これはうまくいきます。それは拘束力があり、期待どおりの正しいデータを示しています。しかし、値を変更してデータベースに保存しようとすると、何も保存されず、NULL例外が発生します。値DropDownListが設定されていません
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 */
}
私の保存]ボタンをテストするには、私はこれを使用しています:
はここに私のC#のコードです
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タグと
<%@ Page Language="C#" debug="True" Inherits="Default" src="Default.cs" validateRequest="false" EnableEventValidation="false"%>
として
<FORM EnableViewState = false runat="server">
を持っています。
フォームタグでEnableViewState = false
を削除すると、2回目のクリック後にのみ動作します。最初のクリックで保存されることはありません。
誰でもお手伝いできますか?いつものようにありがとう。
'IsPostBack'条件チェックの外に' ddStatus_Bind(); 'を残してください – techspider
これは今では値が常に最初のものですか? –
良いですが、あなたのコードに間違いはありません。これを 'IsPostBack'の中に戻し、' EnableViewState = "true"をページタグに追加してください。 – techspider