2014-07-01 4 views
2

다음 코드를 사용하여 dropdownlist에서 선택한 항목을 SQL 데이터베이스 테이블에 삽입했습니다. 실행되지만 드롭 다운 목록 1, 2, 5 및 6에 대해 선택된 항목은 항상 첫 번째 항목을 드롭 다운 목록에 저장합니다. 여기에 내가 중요한 것은제출시 드롭 다운 값이 초기 값으로 재설정 됨

protected void Button1_Click(object sender, EventArgs e) 
{ 
    string query = "insert into Compliance_Tracker.dbo.tasklistManager([NATURE OF PAYMENT],[DESC],FREQUENCY,PREALERT1,PREALERT2,OWNER,[VERIFICATION OWNER],STATUS)values('" + DropDownList1.SelectedValue.ToString() + "','" + TextBox2.Text + "','" + DropDownList2.SelectedItem.Text + "','" + DropDownList3.SelectedItem.Text + "','" + DropDownList4.SelectedItem.Text + "','" + DropDownList5.SelectedItem.Text + "','" + DropDownList6.SelectedItem.Text + "','" + DropDownList7.SelectedValue + "');"; 
    obj6.ExecuteScalar(query); 
    string selectquery = "select [TASK ID],[NATURE OF PAYMENT],[DESC],FREQUENCY,PREALERT1,PREALERT2,OWNER,[VERIFICATION OWNER],(case when STATUS='1' then 'Active' when STATUS='0' then 'Inactive' ELSE 'UNKNOWN' END)as STATUS,ID from Compliance_Tracker.dbo.tasklistManager;"; 
    obj6.PopulateGrid(GridView1, selectquery); 
    TextBox2.Text = string.Empty; 
    DropDownList7.SelectedItem.Text = "Active"; 
} 
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { } 
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { } 
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { } 
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { } 
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { } 

}이 내 HTML 코드는

인을 추가하는 것을 잊었다

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     //populate gridview 
     TextBox2.Focus(); 
     string selectquery = "select [TASK ID],[NATURE OF PAYMENT],[DESC],FREQUENCY,PREALERT1,PREALERT2,OWNER,[VERIFICATION OWNER],(case when STATUS='1' then 'Active' when STATUS='0' then 'Inactive' ELSE 'UNKNOWN' END)as STATUS,ID from Compliance_Tracker.dbo.tasklistManager;"; 
     obj6.PopulateGrid(GridView1, selectquery); 
    } 
    { 
     // populate dropdownlist for prealert 1 
     for (int i = 0; i <= 30; i++) 
     { 
      DropDownList3.Items.Insert(i, new ListItem((i + 1).ToString(), (i + 1).ToString())); 
     } 
     DropDownList3.DataBind(); 
    } 
    { 
     // populate dropdown list for prealert 2 
     for (int j = 0; j <= 30; j++) 
     { 
      DropDownList4.Items.Insert(j, new ListItem((j + 1).ToString(), (j + 1).ToString())); 
     } 
     DropDownList4.DataBind(); 
    } 
    { 
     //populate dropdown for Nature of Payment 
     string query = "select * from Compliance_Tracker.dbo.paymentNatureMaster where STATUS='1';"; 
     string columnname = "DESC"; 
     string datavaluefield="DESC"; 
     obj6.PopulateCombo(DropDownList1,query,columnname,datavaluefield); 
    } 
    { 
     //populate dropdown for frequency 
     string query1 = "select * from Compliance_Tracker.dbo.frequencyMaster where STATUS='1';"; 
     string columnname1 = "DESC"; 
     string datavaluefield1 = "DESC"; 
     obj6.PopulateCombo(DropDownList2,query1, columnname1,datavaluefield1); 
    } 
    { 
     //populate dropdown for owner 
     string query2 = "select * from Compliance_Tracker.dbo.ownerMaster where STATUS='1';"; 
     string columnname2 = "NAME"; 
     string datavaluefield2 = "NAME"; 
     obj6.PopulateCombo(DropDownList5,query2, columnname2,datavaluefield2); 
    } 
    { 
     //populate dropdown for owner verification 
     string query3 = "select * from Compliance_Tracker.dbo.verificationMaster where STATUS='1'"; 
     string columnname3 = "NAME"; 
     string datavaluefield3 = "NAME"; 
     obj6.PopulateCombo(DropDownList6,query3, columnname3,datavaluefield3); 
    } 

을 myButton 클릭 이벤트 미안 내 코드의

<%@ Page Title="" Language="C#" MasterPageFile="~/LoggedInMasterPage.master" AutoEventWireup="true" CodeFile="TaskList.aspx.cs" Inherits="TaskList" %> 

01 23,516,

작업 목록 관리자 표




 <asp:TemplateField HeaderText="TASK ID" SortExpression="TASK ID" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
       <asp:Label ID="TASKID" runat="server" Text='<%#Eval("[TASK ID]") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="NATURE OF PAYMENT" SortExpression="NATURE OF PAYMENT" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
       <asp:Label ID="NOP" runat="server" Text='<%#Eval("[NATURE OF PAYMENT]") %>' /> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:DropDownList runat="server" ID="dropdownnop"></asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 


     <asp:TemplateField HeaderText="DESC" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
      <asp:Label runat="server" ID="DESC" Text='<%#Eval("[DESC]") %>'/> 
      </ItemTemplate> 
      <EditItemTemplate> 
     <asp:TextBox ID ="DESC" runat="server" Text='<%#Eval("[DESC]") %>'></asp:TextBox> 
     <asp:RequiredFieldValidator ID="REQUIREDFIELDVALIDATORDESC" runat="server" ControlToValidate="DESC" ErrorMessage="FIELD CANNOT BE EMPTY"></asp:RequiredFieldValidator> 
      </EditItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="FREQUENCY" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
       <asp:Label runat="server" ID="FREQUENCY" Text='<%#Eval("FREQUENCY") %>' /> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:DropDownList runat="server" ID="dropdownfreq"></asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="DUE DATE OF PAYMENT" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
       <asp:Label runat="server" ID="DDOP" Text='<%#Eval("PREALERT1") %>' /> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:DropDownList runat="server" ID="dropdownddop"></asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="DUE DATE OF SUBMISSION OF RETURN" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
       <asp:Label runat="server" ID="DDOSOR" Text='<%#Eval("PREALERT2") %>' /> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:DropDownList runat="server" ID="dropdownddosor"></asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="OWNER" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
       <asp:Label runat="server" ID="OWNER" Text='<%#Eval("OWNER") %>' /> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:DropDownList runat="server" ID="dropdownowner"></asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="VERIFICATION OWNER" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
       <asp:Label runat="server" ID="VO" Text='<%#Eval("[VERIFICATION OWNER]") %>' /> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:DropDownList runat="server" ID="dropdownvo"></asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="STATUS" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
      <asp:Label runat="server" ID="STATUS" Text='<%#Eval("STATUS") %>'/> 
      </ItemTemplate> 
      <EditItemTemplate> 
      <asp:DropDownList runat ="server" ID="dropdownstatus"> 
       <asp:ListItem Text="Active" Value="1"></asp:ListItem> 
       <asp:ListItem Text="Inactive" Value="0"></asp:ListItem> 
       </asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField Visible="false" HeaderText="ID"> 
      <ItemTemplate> 
      <asp:Label runat="server" ID="ID" Text='<%#Eval("ID") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="Action" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
     <ItemTemplate> 
     <asp:LinkButton ID="btnEdit" Text="Edit" runat="server" CommandName="Edit" /> 
     <asp:LinkButton ID="btnDelete" Text="Delete" runat="server" CommandName="Delete" /> 
     </ItemTemplate> 
     <EditItemTemplate> 
     <asp:LinkButton ID="btnUpdate" Text="Update" runat="server" CommandName="Update" /> 
     <asp:LinkButton ID="btnCancel" Text="Cancel" runat="server" CommandName="Cancel" /> 
     </EditItemTemplate> 
     </asp:TemplateField> 
     </Columns> 
     <PagerSettings FirstPageText="First" LastPageText="Last" Mode="NumericFirstLast" PageButtonCount="4" /> 
    </asp:GridView> 

여기 내 ExecuteScalar는 기능 여기 내 populatecombo 코드

public bool PopulateCombo(DropDownList DDList, string strSQL, string DisMember, string ValMember) 
    { 
     SqlDataAdapter DAdpt = new SqlDataAdapter(); 
     DataSet DSet = new DataSet(); 
     try 
     { 
      if (Conn.State == ConnectionState.Closed) 
       Conn.Open(); 
      DAdpt = new SqlDataAdapter(strSQL, Conn); 
      DAdpt.Fill(DSet); 
      DDList.DataSource = DSet.Tables[0]; 
      DDList.DataTextField = DisMember; 
      DDList.DataValueField = ValMember; 
      DDList.DataBind(); 
      return true; 
     } 
     catch (Exception Ex) 
     { 
      //return null; 
      throw new Exception(Ex.Message); 
     } 
     finally 
     { 
      DAdpt.Dispose(); 
      DSet.Dispose(); 
      Conn.Close(); 
     } 
    } 

입니다입니다

public object ExecuteScalar(string strSQL) 
    { 
     try 
     { 
      if (Conn.State == ConnectionState.Closed) 
       Conn.Open(); 
      Comm = new SqlCommand(strSQL, Conn); 
      return Comm.ExecuteScalar(); 
     } 
     catch (Exception Ex) 
     { 
      //return null; 
      throw new Exception(Ex.Message); 
     } 
     finally 
     { 
      Comm.Dispose(); 
      Conn.Close(); 
     } 
    } 
+0

다른 곳에서는이 드롭 다운리스트의 SelectedItem을 변경하고 있습니까? 그들은 SelectedIndexChanged 이벤트를 가지고 있습니까? –

+0

아니 .. 아무데도 바꾸지 않아. – krishb591993

+0

내 문제를 이해하기 바란다. – krishb591993

답변

2

당신의 Page_Load에 문제가 있다고 생각합니다. 당신은 if(!IsPostBack) 확인 있고, 당신은 몇 가지 그 이후 중괄호 코드가 있습니다

if(!IsPostBack) 
{ 
    //populate gridview 
    .... 
} 

하지만를 다음 코드의 나머지 부분이 초기 블록 후 괄호에있는, 그래서 때문에, 다시 게시 할 때마다 트리거됩니다 목록을 재설정합니다.모든 코드는 중괄호의 첫 번째 세트에 있어야합니다 그리고 당신은 드롭 다운 결합이 다른 블록 주위에 여분의 괄호를 모두 제거 할 수 있습니다 : 당신은 페이지의로드에 중단 점을 넣을 경우 현재와 같이

if(!IsPostBack) 
{ 
    //populate gridview 
    .... 

    // populate dropdownlist for prealert 1 
    ... 

    // populate dropdown list for prealert 2 
    ... 

    //populate dropdown for Nature of Payment 
    ... 

    //populate dropdown for frequency 
    ... 

    //populate dropdown for owner 
    ... 

    //populate dropdown for owner verification   
    ... 
} 

을 제출할 때 각 드롭 다운을 다시로드하고 그 값을 초기 값으로 다시 설정한다는 것을 알 수 있습니다.

+0

Works ... THankYou @Tanner – krishb591993

+0

미안하지만, 어리석은 질문을한다. – krishb591993

+0

@ user3789152 우리 모두 나쁜 날이다 – Tanner

관련 문제