2011-10-24 4 views
0
<Columns> 
         <asp:TemplateField HeaderText="Actions" ItemStyle-Width="15%"> 
          <ItemTemplate> 
           <asp:ImageButton ID="imgbtn" ImageUrl="Styles/Images/Edit.jpg" runat="server" Width="25" 
            Height="25" OnClick="imgbtn_MessageEditClick" Enabled="True" ToolTip="Edit Message" /> 
           <asp:LinkButton ID="Lnk_Delete" CommandArgument='<%# Eval("MsgID") %>' 
            CommandName="Delete" runat="server" >          <img id="Img1" src="Styles/Images/Delete.jpg" runat="server" style="border-style: none" 
             alt="Delete Message" /></asp:LinkButton> 
           <asp:ImageButton ID="imgbtn_ViewDashBoard" ImageUrl="Styles/Images/dash.jpg" Enabled="True" 
            Width="" runat="server" PostBackUrl='<%# Eval("MsgID", "ResponseMetric.aspx?MsgID={0}") %>' 
            Text='Send' ToolTip="View DashBoard"></asp:ImageButton> 
          </ItemTemplate> 

동일한 열에있는 항목 템플릿이 있는데 MessageActive라는 다른 열이 있습니다. rowDataBound에서 messageActive가 no이면 행 색상을 빨간색으로 설정하고 동일한 열에 대해 어떻게하면 안에 disableImageButton ID="imgbtn"asp:LinkButton ID="Lnk_Delete"을 넣을 수 있습니까?asp.net의 개별 열에 대해 ItemTemplate 내의 항목을 비활성화하는 방법

protected void MyGrid_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image)e.Row.FindControl("Status"); 
     int msgid; 
     int.TryParse(Convert.ToString(DataBinder.Eval(e.Row.DataItem, "MsgID")), out msgid);    
     string status = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "MessageActive")); 
     if(status.Equals("No")) 
     { 
      e.Row.BackColor = Color.Red; 

     } 
     } 
    } 

나는 gridview에 대한 databind 않습니다.

답변

3
ImageButton btnEdit = (ImageButton)e.Row.FindControl("imgbtn"); 
btnEdit.Enabled = !status.Equals("No"); 
LinkButton btnDelete = (LinkButton)e.Row.FindControl("Lnk_Delete"); 
btnDelete.Enabled = !status.Equals("No"); 
1

당신은 당신의 RowDataBound 이벤트 처리기 메서드에 다음 코드를 추가 할 수 있습니다

ImageButton imgBtn = e.Row.FindControl("imgbtn") as ImageButton; 
    LinkButton lnkBtn = e.Row.FindControl("Lnk_Delete") as LinkButton; 


    if (null != imgBtn) 
     imgBtn.Enabled = false; 

    if (null != lnkBtn) 
     lnkBtn.Enabled = false;