2017-06-20 58 views
0

在我的gridview中,有一列IsYearly。該值可以是1或0.asp.net GridView不顯示正確的數據,除非發回事件

在頁面加載時,所有數據的默認值爲0,但是當我更新數據時,gridview將成爲頁面加載時的值。

這裏是在GridView:

<asp:GridView ID="gridView_Holidays" runat="server" AutoGenerateColumns="False" Style="margin-right: 10px; margin-top: 0px;" AllowPaging="True" OnPageIndexChanging="grdHolidays_PageIndexChanging" OnRowDataBound="grdHolidays_RowDataBound" PageSize="10" CssClass="table-grid"> 
     <Columns> 
      <asp:BoundField DataField="HolidayName" HeaderText="Name"> 
       <HeaderStyle BackColor="#0078D7" ForeColor="White" Width="320px" /> 
       <ItemStyle BackColor="White" ForeColor="Black" Width="320px" /> 
      </asp:BoundField> 
      <asp:BoundField DataField="HolidayDate" HeaderText="Date"> 
       <HeaderStyle BackColor="#0078D7" ForeColor="White" Width="256px" /> 
       <ItemStyle BackColor="White" ForeColor="Black" Width="256px" /> 
      </asp:BoundField> 
      <asp:BoundField DataField="HolidayID" HeaderText="Holiday ID"> 
       <HeaderStyle BackColor="#0078D7" ForeColor="White" CssClass="HideControl" /> 
       <ItemStyle BackColor="White" ForeColor="Black" CssClass="HideControl" /> 
      </asp:BoundField> 
      <asp:BoundField DataField="HolidayIsYearly" HeaderText="Holiday Yearly"> 
       <HeaderStyle BackColor="#0078D7" ForeColor="White" CssClass="HideControl" /> 
       <ItemStyle BackColor="White" ForeColor="Black" CssClass="HideControl" /> 
      </asp:BoundField> 

      <asp:TemplateField ItemStyle-Width="40px" HeaderText="" ItemStyle-CssClass="tblItem" HeaderStyle-CssClass="header"> 
       <ItemTemplate> 
        <asp:ImageButton ID="imgBtnEditHoliday" runat="server" OnClick="lnkEditHoliday_Click" ImageUrl="~/Images/EDIT.GIF" ToolTip="Edit" /> 
        <asp:ImageButton ID="imgBtnDeleteHoliday" runat="server" Width="16px" OnClick="lnkDeleteHoliday_Click" ImageUrl="~/Images/deleteuser.png" ToolTip="Delete" /> 
       </ItemTemplate> 
       <HeaderStyle BackColor="#0078D7" ForeColor="White" Font-Size="Medium" /> 
       <ItemStyle BackColor="White" ForeColor="Black" Font-Size="Medium" /> 
      </asp:TemplateField> 
     </Columns> 

     <EmptyDataTemplate> 
      No results to show. 
     </EmptyDataTemplate> 
    </asp:GridView> 

後面的代碼:

protected void Page_Load(object sender, EventArgs e) { 
      if (!IsPostBack) { 
       HolidayList(); 
       imgBtnSearchApprover_Click(this, EventArgs.Empty); 
      } 
     } 

     public void HolidayList() { 
      Admin = new List<DTR_Admin>(); 
      Admin = mServiceHoliday.GetList(); 
      gridView_Holidays.DataSource = Admin; 
      gridView_Holidays.DataBind(); 
     } 

這是當我點擊保存按鈕,其中的gridview的(我認爲)將刷新,以便它顯示了發生了什麼正確的數據

protected void btnHolidaySave_Click(object sender, ImageClickEventArgs e) { 
      if (string.IsNullOrEmpty(txtHolidayName.Text) || string.IsNullOrEmpty(txtHolidayDate.Text)) { 
       lblCostCenterError.Text = "Please complete all fields."; 
       ModalPopupExtender2.Show(); 
      } 
      else { 
       if (Admin.Exists(x => (Convert.ToDateTime(x.HolidayDate) == Convert.ToDateTime(txtHolidayDate.Text) && x.HolidayID != holidayID))) { 
        ClientScript.RegisterStartupScript(GetType(), "load", "alert('Date already exists.');", true); 
        ModalPopupExtender2.Show(); 
       } 
       else { 
        DTR_HolidayService holidayService = new DTR_HolidayService(); 
        DTR_Admin pEntity = new DTR_Admin(); 
        pEntity.HolidayID = holidayID; 
        pEntity.HolidayDate = txtHolidayDate.Text; 
        pEntity.HolidayName = txtHolidayName.Text; 
        pEntity.HolidayIsYearly = cbYearly.Checked ? 1 : 0; 

        holidayService.EditHoliday(pEntity); 
        HolidayList(); 
       } 
      } 
     } 

回答

0

我認爲你可以使用這段代碼來設置數據庫的代碼中的默認值

public int _HolidayIsYearly= 1; 
public int HolidayIsYearly 
     { 
      get { return _HolidayIsYearly; } 
      set { _HolidayIsYearly= value; } 
     } 
+0

我試了一下,現在所有的值設置爲1 – aronccs

0
public byte HolidayIsYearly { get; set; } 

請檢查該解決方案