在标签的gridview中显示选定行的div元素

时间:2014-07-07 09:22:44

标签: asp.net gridview row

我编写了一个代码来显示带有标签的表单中的所选行,并且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都可以正常工作,因为它们一直保存在网格视图中模板字段的标签中。但是,问题在于第四个是文档路径

1 个答案:

答案 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;

这可以进一步使用