привязка значений к скрытому полю

1
 <asp:HiddenField ID="hidapplyuid" runat="server" EnableViewState="true" />

                        <asp:TemplateField Visible="false">
                            <ItemTemplate>
                                <asp:Label ID="UID" CssClass="" runat="server" Text='<%#Eval("candUID")%>'></asp:Label>      
                                 <asp:Label ID="JobApplyUID" CssClass="" runat ="server" Text='<%#Eval("jobApplyUID")%>'></asp:Label>                         
                            </ItemTemplate>                            
                        </asp:TemplateField>   

нужно привязать JobApplyUID к скрытому полю на странице cs... пожалуйста, помогите мне...

  • 1
    Ошибка, сэр, что это?
  • 1
    Value='<%#Eval("jobApplyUID")%>' ?
Показать ещё 1 комментарий
Теги:

2 ответа

1
Лучший ответ

Вам нужно поместить HiddenField внутри TemplateField, иначе он не будет привязан к базе данных, поскольку GridView, DetailsView и т.д. Не смогут получить к нему доступ

Измените это

<asp:HiddenField ID="hidapplyuid" runat="server" EnableViewState="true" />

<asp:TemplateField Visible="false">
    <ItemTemplate>
        <asp:Label ID="UID" CssClass="" runat="server" Text='<%#Eval("candUID")%>'></asp:Label>      
        <asp:Label ID="JobApplyUID" CssClass="" runat ="server" Text='<%#Eval("jobApplyUID")%>'></asp:Label>                         
    </ItemTemplate>                            
</asp:TemplateField>   

Что-то вроде этого. Переместите его на TemplateField где-нибудь, например

<asp:TemplateField>
    <ItemTemplate>
        <%-- Move hidden variable inside of the template, else it cannot be databound --%>
        <asp:HiddenField ID="hidapplyuid" runat="server" Value='<%#Eval("jobApplyUID")%>' />
    </ItemTemplate>                            
</asp:TemplateField>
<asp:TemplateField Visible="false">
    <ItemTemplate>
        <asp:Label ID="UID" CssClass="" runat="server" Text='<%#Eval("candUID")%>'></asp:Label>      
        <asp:Label ID="JobApplyUID" CssClass="" runat ="server" Text='<%#Eval("jobApplyUID")%>'></asp:Label>                         
    </ItemTemplate>                            
</asp:TemplateField>   
  • 1
    если я перенесу это в сетку, я смогу получить доступ к значению, отличному от сетки ... мне нужно использовать это значение для других целей ...
  • 0
    @kirk Как я могу получить значение скрытого поля через JavaScript?
Показать ещё 1 комментарий
0

Оценка элементов управления из gridview очень проста, попробуйте эту демонстрацию следующим образом. Добавьте новую тестовую страницу в свой проект. Позволяет иметь страницу ASPX, как показано ниже...

<div>
    Job Apply GUID : <asp:Label runat="server" ID="uxJobApplyUID"></asp:Label>
     <asp:GridView ID="uxGrid" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:TemplateField HeaderText="JobApply UID">
                <ItemTemplate>
                    <asp:HiddenField ID="uxHiddenJobApplyUID" runat="server" Value='<%#Eval("jobApplyUID") %>' />
                    <asp:Button ID="uxShowDetails" runat="server" Text="Show Data" OnClick="uxShowDetails_Click" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
</div>

И код позади будет следующим...

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("jobApplyUID", typeof(string));
        dt.Rows.Add(System.Guid.NewGuid().ToString());
        dt.Rows.Add(System.Guid.NewGuid().ToString());
        dt.Rows.Add(System.Guid.NewGuid().ToString());
        dt.Rows.Add(System.Guid.NewGuid().ToString());
        dt.Rows.Add(System.Guid.NewGuid().ToString());
        uxGrid.DataSource = dt;
        uxGrid.DataBind();
    }
}
protected void uxShowDetails_Click(object sender, EventArgs e)
{
    this.uxJobApplyUID.Text = (((sender as Button).NamingContainer as GridViewRow).FindControl("uxHiddenJobApplyUID") as HiddenField).Value;
}

Если вы попробуете это, вы можете получить значение из любого элемента управления, присутствующего в gridview.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню