2017-05-26 7 views
0

アップロードされた日付が今日の日付と等しくない場合、gridviewを編集できないようにする必要があります。私は、画像ボタンIDgirdviewを編集不可能にする方法またはasp .netで編集不可能な画像ボタンを作成する方法#

を呼び出すようにしようとしています**私はこの

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> 

を解決することができ、私は以下の方法で行っているが、メッセージを表示した後、私は私の画像編集非クリッカブルにする必要がありますが、私はthat.Howを行うことができません

<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

プロテクトvoid BindData() { DataTable dt = adm.GetData(); IF(dt.Rows.Count> 0){ 用は、(i = 0、int型、iがdt.Rows.Countを<; Iは++){ ストリングupldeddate = dt.Rows [I] [ "UploadedDate"]。ToString(); セッション["UploadedDate"] = upldeddate; } //文字列uploadeddate = dt.Rows [0] ["UploadedDate"]。ToString(); GridView2.DataSource = dt; GridView2.DataBind(); } }ここで私のデータベースからアップロードされた日付を取得しており、セッションを維持しています – abc

+0

このコードを質問に入れてコメントから削除できますか?それはここでは読めるものではなく、誰もがコメントを見るわけではありません。 –

答えて

0

は、画像ボタン

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

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メソッドが呼び出されています。可能であれば、BindDataメソッドもpage_loadに呼び出す必要があります。

コードからGridView2_RowEditingメソッドを削除し、GridViewからOnRowEditing="GridView2_RowEditing"を削除する必要があります。

GridViewのImageButtonの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を取得するのに役立ちます。このアプローチを完全に実装して試してみて、それが動作しているかどうかをテストして教えてください。

動作していない場合、動作していない動作や、予期せぬ動作やエラーが発生した場合の詳細をご提供ください。

関連する問題