2014-07-07 3 views
0

레이블이있는 양식에서 선택된 행을 표시하는 코드를 작성하고 gridview의 데이터 대부분은 레이블에 저장되지만 하나의 셀은 div 요소에 데이터를 저장합니다. 따라서 문제는 div 요소에서 데이터를 가져 와서 라벨에 표시하는 방법입니다.레이블의 gridview에서 선택된 행의 div 요소 표시

이것은

<asp:TemplateField HeaderText="DOC PATH" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
       <div id="DIV1" style="width: 100px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis"> 
        <%#Eval("[DOC PATH]") %> 
       </div> 
      </ItemTemplate> 
     </asp:TemplateField> 

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    GridViewRow row = GridView1.SelectedRow; 
    lblTASKIDOUTPUT.Text = (row.FindControl("TASKID") as Label).Text; 
    lblDescOutput.Text = (row.FindControl("DESC") as Label).Text; 
    lblFrequencyOutput.Text = (row.FindControl("FREQUENCY") as Label).Text; 
    lblDocPathOutput.Text = row.Cells[4].Text; 
} 

뒤에 내 코드의 gridview의 내 영문 코드는 위의 세 가지 lblTASKIDOUTPUT, DescOutput 및 FrequencyOutput 그들이에 라벨에 보관 되었기 때문에 모든 작업을하다 격자보기의 템플릿 필드. 하지만 문제는 네 번째 문서 경로입니다.

답변

1

여기에서 리터럴 컨트롤을 사용할 수 있습니다. div 아래에 직접 텍스트를 표시하는 대신 html 태그를 렌더링하지 않는 리터럴 컨트롤을 사용하십시오.

<asp:TemplateField HeaderText="DOC PATH" HeaderStyle-BackColor="DarkGreen" HeaderStyle-ForeColor="White"> 
      <ItemTemplate> 
       <div id="DIV1" style="width: 100px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis"> 
       <asp:Literal ID="literalPath" runat="server" Text='<%#Eval("[DOC PATH]") %>'></asp:Literal> 
        </div> 
       </ItemTemplate> 
      </asp:TemplateField> 

그런 다음

Literal literalPath= row.FindControl("literalPath") as Literal; 

아래와 같이 리터럴 컨트롤에 액세스 할 수 있습니다 이것은 더

을 사용할 수 있습니다
관련 문제