如何在g .net c中使girdview不可编辑或图像按钮不可编辑#

时间:2017-05-26 10:24:47

标签: c# asp.net

如果上传的日期不等于今天的日期,我需要使gridview不可编辑,这意味着我的gridview应该只针对那个特定的日子进行编辑我已经用以下方式完成但是在显示消息后我应该制作我的图像编辑不可点击但我无法做到。我怎么能解决这个问题

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;
        }
    }

2 个答案:

答案 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()条件匹配,将设置启用属性。否则它将是错误的。

确保日期格式正确,否则请手动格式化。

答案 1 :(得分: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"

现在,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>

这样,将根据绑定到GridView的GridViewRow的当前项的UploadDate值启用或禁用图像按钮。

这应该可以帮助您至少在GridView中获得启用/禁用图像按钮。请尝试完全实施此方法并对其进行测试并告诉我们它是否正常工作。

如果它无效,请详细说明它无法正常工作以及您遇到的错误或意外行为。