C#Cell LiteralControl获取文本值

C#Cell LiteralControl获取文本值,c#,asp.net,C#,Asp.net,为什么在将gridview导出到Excel时获取literalcontrol的文本值时这不起作用 cell.Text = (cell.Controls[0] as LiteralControl).Text; 编辑:(完整代码) Asp.Net默认情况下会在gridview模板字段中添加LiteralControl,这是因为间距或其他原因,所以您引用的是该控件而不是您的控件,请尝试使用 cell.Controls[1] 而不是 cell.Controls[0] 在文字控制的情况下 此外,

为什么在将gridview导出到Excel时获取literalcontrol的文本值时这不起作用

cell.Text = (cell.Controls[0] as LiteralControl).Text;
编辑:(完整代码)


Asp.Net默认情况下会在gridview模板字段中添加LiteralControl,这是因为间距或其他原因,所以您引用的是该控件而不是您的控件,请尝试使用

cell.Controls[1] 
而不是

cell.Controls[0] 
在文字控制的情况下


此外,如果可能,您可以将ID分配给控件并使用这些ID,在这种情况下,引用不正确元素的问题不会出现,因为您将使用其特定ID引用控件。

我运行了导出并在单元格中添加了什么类型的控件。超链接可以工作,我可以得到文本并去掉控件。具有LiteralControls的单元格无法读取控件文本。请添加更多适当的标记。似乎是asp.net问题发生了什么事情?您是将文本控件设置为null还是文本属性为空字符串?是否确定cell.Controls[0]是文字控件?你检查过它的类型了吗?它是一个空字符串。它知道它是一个LiteralControl,但文本无法读取、编辑并添加完整的代码。读取超链接和LinkButton文本。这是有效的:case“LiteralControl”:cell.text=(cell.Controls[1]作为超链接)。text;cell.Controls.Clear();打破
cell.Controls[0]