C# 在 Gridview 中从 HiddenField 设置和检索值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19467310/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-10 15:04:28  来源:igfitidea点击:

Set and retrieve value from HiddenField in Gridview

c#asp.netgridviewhidden-field

提问by deadEddie

I have a custom control that is embedded in a GridView. The control needs a value (Id column from SqlDataSource1) contained in the same data table that the gridview is bound to for its constructor.

我有一个嵌入在GridView. 该控件需要一个值(SqlDataSource1 中的Id 列),该值包含在gridview 为其构造函数绑定到的同一数据表中。

The problem I'm having is that I don't understand how to set the value of the hidden field. The data type is for this field is a Guid.

我遇到的问题是我不明白如何设置隐藏字段的值。此字段的数据类型是 Guid。

ASPX:

ASPX:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="GridUserControl.ascx.cs" Inherits="CustomNavi_V1_ControlTest.CustomControls.GridUserControl" %>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:srsfwa1_scrambledConnectionString %>" SelectCommand="SELECT [ApplicantId], [ValleyId], [SchoolId], [StatusId], [StudentID], [InterviewDate], [Id] FROM [tblSubmissions]"></asp:SqlDataSource>
<asp:GridView ID="StudentGridView" DataKeysNames="Submission" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" OnDataBound ="StudentGridView_OnDataBind">
<Columns>
    <asp:BoundField DataField="ApplicantId" HeaderText="ApplicantId" SortExpression="ApplicantId" />
    <asp:BoundField DataField="ValleyId" HeaderText="ValleyId" SortExpression="ValleyId" />
    <asp:BoundField DataField="SchoolId" HeaderText="SchoolId" SortExpression="SchoolId" />
    <asp:BoundField DataField="StudentID" HeaderText="StudentID" SortExpression="StudentID" />
    <asp:BoundField DataField="InterviewDate" HeaderText="InterviewDate" SortExpression="InterviewDate" />
    <asp:BoundField DataField="StatusId" HeaderText="StatusId" SortExpression="StatusId" visible="true"/>
    <asp:BoundField DataField="Id" Visible ="false" />
    <asp:TemplateField>
        <ItemTemplate>
            <asp:HiddenField ID="HiddenField" DataField="SubmissionID" runat="server" Value=""/>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField Visible="true" HeaderText="Ed's Fabulous Custom Control!!" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
        <ItemTemplate>

        </ItemTemplate>
    </asp:TemplateField>

</Columns>
</asp:GridView>

HiddenField:

HiddenField

protected void AddCustomControl()
{
    int iterator = 0;
    foreach (GridViewRow row in StudentGridView.Rows)
    {
        if (row.RowType == DataControlRowType.DataRow)
        {
            //StudentGridView.HiddenField.value= StudentGridView.
            //HiddenField hiddenField = this.StudentGridView1.FindControl("
            Guid submissionIdGuid = (Guid)hiddenField.Value; // ("SubmissionID").Value;
            string controlID = "NavigatorControlID" + iterator.ToString();
            string submissionID = row.Cells[6].Text;  // tblSubmissions Id field
            string statusId = row.Cells[5].Text; // tblSubmissions StatusId field
            connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["srsfwa1_scrambledConnectionString"].ToString());

            CustomNavi_V1._1.CustomNavi_V1 navigator = new CustomNavi_V1._1.CustomNavi_V1(submissionID, statusId);
            navigator.ID = controlID;
            navigator.SubmissionID = submissionIdGuid;
            navigator.BackButtonImage = "Images/back_button.png";
            navigator.ForwardButtonImage = "Images/fwd_button.png";

            row.Cells[7].Controls.Add(navigator);
            iterator++;
        }
    }
}

采纳答案by afzalulh

To get the GUID from hidden field, It will be something like:

要从隐藏字段获取 GUID,它将类似于:

HiddenField hiddenField = (HiddenField)row.FindControl("HiddenField");
Guid submissionIdGuid =  new Guid();
Guid.TryParse(hiddenField.Value, out submissionIdGuid );

And to set,

并设置,

hiddenField.Value = submissionIdGuid.ToString();