2016-02-16 59 views
0

我有一個標籤和一個命令字段進行編輯的網格視圖。 如果標籤包含今天的日期,我想禁用命令字段。如何禁用gridview中的特定命令字段?

應該啓用空標籤的所有命令字段。 我該如何做到這一點?

感謝

.aspx的 -

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false"> 
<Columns> 
<asp:TemplateField HeaderText="Schedule Date"> 
<ItemTemplate> 
<asp:Label ID="schedule" runat="server" Text='<%# Eval("Date","{0:dd-MMM-yy}") %>'></asp:Label> 
</ItemTemplate> 
<asp:CommandField ShowEditButton="true" EditText="Click here to Schedule/Re-Schedule" UpdateText="Submit" HeaderText="Schedule/Re-Schedule" /> 
</Columns> 
</asp:GridView> 

回答

1

它的更好,如果你使用命令字段的LinkBut​​ton:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" 
    onrowdatabound="gv_RowDataBound"> 
    <Columns> 
     <asp:TemplateField HeaderText="Schedule Date"> 
      <ItemTemplate> 
       <asp:Label ID="schedule" runat="server" Text='10:25-02-2015'></asp:Label> 
      </ItemTemplate> 
      </asp:TemplateField> 

     <asp:TemplateField ShowHeader="False"> 
      <ItemTemplate> 
       <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
        CommandName="Edit" Text="Edit"></asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField> 

    </Columns> 
</asp:GridView> 

那麼你可以使用行數據綁定事件:

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      Label schedule = (Label)e.Row.FindControl("schedule"); 
      LinkButton LinkButton1 = (LinkButton)e.Row.FindControl("LinkButton1"); 
      if (schedule.Text == string.Empty) 
      { 
       LinkButton1.Enabled = false; 
      } 
      else 
      { 
       LinkButton1.Enabled = true; 
      } 
     } 
    } 

這將是hel你呢!

+1

謝謝。這有很大幫助。 –

+0

您最歡迎... –

相關問題