2017-05-26 72 views
0

我需要在GridView不能編輯,如果上傳日期不等於今天的日期,這意味着我的GridView控件應該只爲這個特定的日子可編輯我已經在下面的方式進行,但顯示消息後,我應該讓我的圖像編輯不點擊,但我不能做我that.How可以解決這個如何使ASP.NET的C#girdview不可編輯或圖像按鈕不可編輯

protected void GridView2_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     BindData(); 
     string date=DateTime.Now.ToString(); 
     string uploadeddate = Session["UploadedDate"].ToString(); 
     if (uploadeddate == date) 
     { 
      BtnExport.Visible = true; 
      GridView2.EditIndex = e.NewEditIndex; 
      BindData(); 
     } 
     else 
     { 
      lblMsg.Visible = true; lblMsg.Text = "You Can Edit The Data Only On Uploaded Day!!!"; 

     } 

    } 


    <asp:TemplateField HeaderText="Action"> 
         <ItemTemplate> 
          <asp:ImageButton ID="imgbtnEdit" runat="server" CommandName="Edit" ImageUrl="Images/icon-edit.png" Height="32px" Width="32px"/> 

         </ItemTemplate> 
         <EditItemTemplate> 
          <asp:ImageButton ID="imgbtnUpdate" runat="server" CommandName="Update" ImageUrl="Images/update1.jpg"/> 
          <asp:ImageButton ID="imgbtnCancel" runat="server" CommandName="Cancel" ImageUrl="Images/cancel.jpg"/> 
         </EditItemTemplate> 
        </asp:TemplateField> 

**我試圖調用圖像按鈕的ID

<asp:ImageButton ID="imgbtnEdit" runat="server" CommandName="Edit" ImageUrl="Images/icon-edit.png" Height="32px" Width="32px"/> 

imgbtnEdit.enabled = FALSE;在C#中,但它不工作**

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      BindUsers(); 
     } 
     string desi = Session["Role"].ToString(); 
     if (desi == "admin") 
     { 
      GridView2.Visible = true; 
      GridView1.Visible = false; 
      BtnExport.Visible = false; 
     } 
     else 
     { 
      GridView2.Visible = false; 
      GridView1.Visible = true; 
      BtnExport.Visible = false; 
     } 
    } 
+0

如何以及在哪裏設置Session [「UploadedDate」] – Imad

+0

protected void BindData() DataTable dt = adm.GetData(); string upldeddate = dt.Rows [i] [「UploadedDate」]。如果(dt.Rows.Count> 0) (int i = 0; i abc

+0

您可以將此代碼置於問題中並將其從評論中刪除。這裏不可讀,不是每個人都會看到評論。 –

回答

0

添加Enabled='<%# Eval("UploadedDate").Date == DateTime.Now.Date %>'圖像按鈕

<asp:ImageButton ID="imgbtnEdit" runat="server" CommandName="Edit" ImageUrl="Images/icon-edit.png" Height="32px" Width="32px" Enabled='<%# Eval("UploadedDate").Date == DateTime.Now.Date %>'/> 

,並刪除C#代碼相同。

說明:如果Eval("UploadedDate") == DateTime.Now.ToString()條件匹配,則啓用屬性將被設置。否則它將是錯誤的。

確保日期格式正確,否則手動格式化。

+0

您能否請您提供一些關於您建議的代碼更改的解釋,以及它應該如何工作? –

+0

@ChetanRanpariya現在好嗎? – Imad

+0

但它不起作用 – abc

0

你並不需要在uploadedDate存儲在會話中。如果該字段是DataSource的一部分,那麼您可以在GridView中使用它來決定是否啓用或禁用imagebutton。

首先你應該簡化BindData方法如下。

protected void BindData() 
{ 
    DataTable dt = adm.GetData(); 
    GridView2.DataSource = dt; 
    GridView2.DataBind(); 
} 

我看到你在Page_Load中調用BindUsers方法。如果適用,您也應該在page_load中調用BindData方法。

你也應該從代碼中刪除GridView2_RowEditing方法和GridView中刪除OnRowEditing="GridView2_RowEditing"

現在的ImageButton在GridView的ItemTemplate應改爲如下。

<ItemTemplate> 
    <asp:ImageButton ID="imgbtnEdit" runat="server" ImageUrl="Images/icon-edit.png" Height="32px" Width="32px" Enabled='<%# Convert.ToDateTime(Eval("UploadedDate")).Date == DateTime.Now.Date %>'/> 
</ItemTemplate> 

這樣,ImageButton的將基於被綁定到GridView的GridViewRow的當前項目的UploadDate值來啓用或禁用。

這應該會幫助您至少在GridView中啓用/禁用imagebutton。請嘗試完全實施此方法並對其進行測試並告訴我們它是否正常工作。

如果無法正常工作,請提供詳細信息,說明它無法正常工作,以及您所得到的錯誤或意外行爲。