我有个疑问
以下这些类型的标签文本声明有什么区别?
<asp:Label ID="lbl2" **Text="Name"** runat="server"></asp:Label>
和
<asp:Label ID="lbl2" runat="server"**>Name</**asp:Label>
我直接在 text 属性中Text="Name"
提供文本并在标签字段的中心提供文本 > Name </
我的gridview控件上有更多标签,我想在编辑网格时获取标签文本值,我正在使用查找控件来获取标签值
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
Label xx = GridView1.Rows[e.NewEditIndex].FindControl("lbl2") as Label;
Label yy = GridView1.Rows[e.NewEditIndex].FindControl("lbl2") as Label;
txtName.Text = xx.Text;
txtAge.Text = yy.Text;
}
这是我的gridview代码
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lbl1" Text='<%# Eval("StudentName") %>' runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
它工作正常,如果我将 Eval 值放在标签 Text 属性中,但是如果我在标签的中心提供 eval 值,比如 ( <asp:Label ID="lbl1" runat="server"><%# Eval("StudentName") %></asp:Label>
) 那么 find 控件没有返回值,它返回空 ("") 。为什么 ?
编辑:
但是,如果我在 gridview 之外设置标签文本,那么两种方式都可以正常工作(如果以这两种方式设置文本,lblid.text 会给出正确的)!只有我在gridview的标签中遇到了问题!