我编写了一个代码来显示带有标签的表单中的所选行,并且gridview中的大多数数据都存储在标签中,但是一个单元格正在div元素中存储数据。因此,问题是如何在div元素中获取该数据并将其显示在标签中。
这是我的gridview的aspx代码
<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都可以正常工作,因为它们一直保存在网格视图中模板字段的标签中。但是,问题在于第四个是文档路径
答案 0 :(得分:1)
您可以在此处使用文字控制。不使用直接在div下显示文本,而是使用Literal控件,它不会呈现任何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;
这可以进一步使用