フィールドのみのグリッドビューがありItemTemplate
ます。私は ( DropDownLists, Labels and TextBoxes
) を持っています。私は完璧な値を取得していますDropDownLists
...TextBoxes
しかし、私Labels
は常に空の値を返しています。なんで?
これが私のものItemTemplates
です:
<asp:TemplateField HeaderText="RESPONSÁVEL">
<ItemTemplate>
<asp:DropDownList ID="Drop_Responsaveis" runat="server" Width="115px" ></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="PROJETO" HeaderStyle-Width="90px" ItemStyle-HorizontalAlign="Center" ItemStyle-Font-Size="12px">
<ItemTemplate>
<asp:Label ID="Lbl_Projeto" runat="server"><%# Eval("projeto") %></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="60px" HeaderText="PREVISÃO Calendar"> <%-- CAMPO 4--%>
<ItemTemplate>
<asp:TextBox ID="TxtPrevisao" runat="server" Width="70px" Height="12px" Text='<%# Eval("previsao","{0:dd/MM/yyyy}") %>'></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtender1" runat="server" Format="dd/MM/yyyy" TargetControlID="TxtPrevisao" PopupButtonID="TxtPrevisao" CssClass="MyCalendar">
</asp:CalendarExtender>
</ItemTemplate>
</asp:TemplateField>
そして、codebehind
これが私がこれらの値を取得する方法を示しています( 内Button_Click Event
):
string projeto = "",responsavel = "", previsao = "";
foreach (GridViewRow gvr in GridView1.Rows)
{
Control ddl_resp = gvr.FindControl("Drop_Responsaveis");
Control lbl_projeto = gvr.FindControl("Lbl_Projeto");
Control TxtPrevisao = gvr.FindControl("TxtPrevisao");
if (ddl_resp != null)
{
DropDownList ddl = ddl_resp as DropDownList;
responsavel = ddl.SelectedValue.ToString();
}
if (TxtPrevisao != null)
{
TextBox preview = TxtPrevisao as TextBox;
previsao = preview.Text;
}
if (lbl_projeto != null)
{
Label project = lbl_projeto as Label;
projeto = project.Text;
}
}
ALWAYSの値projeto
は空になりますが、グリッドビューでは値が正常であることを示しています...おそらくそれが原因Eval
ですか?