-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 EnableViewState = false runat="server">
형태의 태그로
및 페이지 태그로
<%@ Page Language="C#" debug="True" Inherits="Default" src="Default.cs" validateRequest="false" EnableEventValidation="false"%>
있습니다.
양식 태그에서 EnableViewState = false
을 삭제하면 두 번째 클릭 후에 만 작동합니다. 첫 번째 클릭에는 절대로 저장되지 않습니다.
아무도 도와 줄 수 있습니까? 언제나처럼 고마워.
'IsPostBack' 조건 검사에서'ddStatus_Bind();'를 유지하십시오. – techspider
값은 항상 첫 번째 값 이었습니까? –
좋은, 당신의 코드에 아무 문제가 없습니다; 이제'IsPostBack' 안에 다시 저장하고 EnableValue = "true"를 페이지 태그에 추가하십시오. – techspider