Отобразить элемент div из выбранной строки в gridview в label

#asp.net #gridview #row

#asp.net #просмотр сетки #строка

Вопрос:

Я написал код для отображения выбранной строки в форме, имеющей метки, и большая часть данных в gridview хранится в labels , но одна ячейка хранит данные в элементе div . Итак, вопрос в том, как извлечь эти данные из элемента div и отобразить их в label.

Это мой aspx-код gridview

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

Вышеупомянутые три lblTASKIDOUTPUT, DescOutput и FrequencyOutput все работают, потому что они были сохранены в виде меток в полях шаблона в режиме grid . Но проблема заключается в 4-м пути к документу

Ответ №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, как показано ниже

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

Это позволит вам использовать его в дальнейшем