2009-11-15 5 views
2

선택란 경우 I 체크 박스가 화상 열에 녹색 눈금 화상을 표시한다 선택되면 체크 박스 컬럼표시 화상

현재 화상 열을 가지고있는 gridview 있고 선택하지 않으면 연속 된 행에 잘못된 이미지 아이콘이 표시됩니다.

.aspx 페이지는

<asp:TemplateField HeaderText="Backup Session Status" 
      SortExpression="backupsessionstatus"> 
      <EditItemTemplate> 
       <asp:CheckBox ID="CheckBox1" runat="server" 
        Checked='<%# Bind("backupsessionstatus") %>' /> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:CheckBox ID="CheckBox1" runat="server" 
        Checked='<%# Bind("backupsessionstatus") %>' Enabled="false" /> 
      </ItemTemplate> 
     </asp:TemplateField> 



     <asp:TemplateField HeaderText="Backup Session Status"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Image ID="Image1" runat="server"/> 
      </ItemTemplate> 
     </asp:TemplateField> 

이 있고 .cs 파일은 다음과 같습니다

foreach (GridViewRow myRow in GridView1.Rows) 
      { 
       Image img1 = (Image)myRow.FindControl("Image1"); 
       CheckBox chkbox1 = (CheckBox)myRow.FindControl("CheckBox1"); 
       if (chkbox1.Checked) 
       { 
        img1.ImageUrl = "greenimage.jpg"; 
       } 
       else 
       { 
        img1.ImageUrl = "redimage.jpg"; 
       } 
      } 

그것이 열

수있는 방법을 제안 해주십시오에서 어떤 이미지를 표시하지 있습니다 ... 감사합니다.

+0

"연속 된 행에 잘못된 이미지 아이콘을 보여줍니다"? 연속 열 또는 행을 의미합니까? 당신은 '열'을 제안했다. 게시 된 CS 코드는 어떤 이벤트에 연결되어 있습니까? –

답변

3

감사의 입력을위한 그러나 나는이 대답을 얻었다 ..이이 내가 당신이 이미지 URL을 제공해야한다는 배운 .CS 코드

foreach (GridViewRow myRow in GridView1.Rows) 
     { 
      Image img1 = (Image)myRow.FindControl("Image1"); 
      CheckBox chkbox1 = (CheckBox)myRow.FindControl("CheckBox1"); 
      if (chkbox1.Checked) 
      { 
       img1.ImageUrl = "~/greenimage.jpg"; 
      } 
      else 
      { 
       img1.ImageUrl = "~/redimage.jpg"; 
      } 
     } 

얼마나

<asp:TemplateField HeaderText="Backup Session Status" 
     SortExpression="backupsessionstatus"> 
     <EditItemTemplate> 
      <asp:CheckBox ID="CheckBox1" runat="server" 
       Checked='<%# Bind("backupsessionstatus") %>' /> 
     </EditItemTemplate> 
     <ItemTemplate> 
      <asp:CheckBox ID="CheckBox1" runat="server" 
       Checked='<%# Bind("backupsessionstatus") %>' Enabled="false" /> 
     </ItemTemplate> 
    </asp:TemplateField> 



    <asp:TemplateField HeaderText="Backup Session Status"> 
     <EditItemTemplate> 
      <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 
     </EditItemTemplate> 
     <ItemTemplate> 
      <asp:Image ID="Image1" runat="server" ImageUrl="~/NewFolder1/1258341827_tick.png"/> 
     </ItemTemplate> 
    </asp:TemplateField> 

입니다 aspx 페이지에서 코드 뒤에있는 이미지로 수정하십시오. 만약 당신이 이미지 URL을 보내지 않는다면 작동하지 않을 것입니다 ...

+0

나는 그것이 사실이 아니라고 확신한다. –

1

디버그에서 코드를 밟아서 요를 확보 했습니까? 당신이 예상대로 루 foreach 루틴이 실행 중입니까? 항상 확실한 첫 번째 점을 확인하십시오 ... 이미지 경로가 정확합니까? "/"가 없다면 페이지가로드 된 폴더를 기준으로 이미지를 찾고 있음을 의미합니다.

1

GridViewOnRowDataBound 이벤트에서 이미지 URL을 전환 해보십시오.

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    CheckBox chk = (CheckBox)e.Row.FindControl("CheckBox1"); 
    if (chk != null) 
    { 
     Image img1 = (Image)e.Row.FindControl("Image1"); 
     if (chk.Checked) 
      img1.ImageUrl = "greenimage.jpg"; 
     else 
      img1.ImageUrl = "redimage.jpg"; 
    } 
}