在GridView中获取隐藏字段的值 [英] Get value of hidden field in GridView

查看:100
本文介绍了在GridView中获取隐藏字段的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我在gridview中有一个隐藏字段。



Hi,

I have a hidden field in a gridview.

<blockquote class="FQ"><div class="FQA">Quote:</div><asp:GridView ID="gridView" runat="server" CellPadding="5" GridLines="None" 
                  AllowPaging="false" AllowSorting="True" AutoGenerateColumns="false"
                OnRowEditing="OnRowEditing" OnRowDataBound="OnRowDataBound"  
                  CausesValidation="true" CssClass="gridview" BorderColor="AntiqueWhite" 
                  BorderWidth="0px" CellSpacing="1">
                <SelectedRowStyle CssClass="gridview-selected-row" />
                <HeaderStyle CssClass="gridview-header" Font-Bold="false" />
                <AlternatingRowStyle CssClass="gridview-alternate-row" />
                <RowStyle CssClass="gridview-row" />
            
                <Columns>
                                
                    <asp:TemplateField HeaderText="CustomerId" Visible="false">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# 
Bind("cust_id") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# 
Bind("cust_id") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                   <asp:TemplateField HeaderText="CustomerName" Visible="false">
                       <%--  <EditItemTemplate>
                            <asp:TextBox ID="TextBox2" runat="server" Text='<%# 
Bind("cust_name") %>'></asp:TextBox>
                        </EditItemTemplate>--%>
                        <ItemTemplate>
                            <asp:Label ID="Label2" runat="server" Text='<%# 
Bind("cust_name") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Display Name">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("cust_display_name") %>'></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredField2" runat="server" ControlToValidate="TextBox3" ErrorMessage ="Enter Display name" Display="Dynamic" ForeColor="Red" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label3" runat="server" Text='<%# 
Bind("cust_display_name") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                   
                   
                    <asp:TemplateField HeaderText="Email">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("cust_email") %>'></asp:TextBox>
                            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox4" Display="Dynamic" ValidationExpression = "^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$" ErrorMessage="Invalid Email Id" ForeColor="Red"/>
                            <asp:RequiredFieldValidator ID="RequiredField1" runat="server" ControlToValidate="TextBox4" ErrorMessage ="Enter Email ID" Display="Dynamic" ForeColor="Red" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label4" runat="server" Text='<%# 
Bind("cust_email") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="Services Id" Visible="false">
                      <%--  <EditItemTemplate>
                            <asp:TextBox ID="TextBox7" runat="server" Text='<%# 
Bind("service_id") %>'></asp:TextBox>
                        </EditItemTemplate>--%>
                        <ItemTemplate>
                            <asp:Label ID="Label7" runat="server" Text='<%# 
Bind("service_id") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Services">
                    <InsertItemTemplate>
                    <asp:Label ID="Label4" runat="server" Text='<%# 
Bind("service_display_name") %>'></asp:Label>
                    </InsertItemTemplate>
                   <%--     <EditItemTemplate>
                            <asp:TextBox ID="TextBox8" runat="server" Text='<%# 
Bind("service_display_name") %>'></asp:TextBox>--
                        </EditItemTemplate>--%>
                        <ItemTemplate>
                            <asp:Label ID="Label8" runat="server" Text='<%# 
Bind("service_display_name") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="Status">
                     <InsertItemTemplate>
                    <asp:Label ID="LabelCustStatus" runat="server" Text='<%# 
Bind("cust_status") %>'></asp:Label>
                    </InsertItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lbl_Cust_Status" runat="server" Text='<%# 
Bind("cust_status") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="Spoc Name">
                   <InsertItemTemplate>
                    <asp:Label ID="LabelCustSpoc" runat="server" Text='<%# 
Bind("cust_spoc") %>'></asp:Label>
                    </InsertItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lbl_cust_spoc" runat="server" Text='<%# 
Bind("cust_spoc") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="Address">
                   <InsertItemTemplate>
                    <asp:Label ID="LabelCustAddress" runat="server" Text='<%# 
Bind("cust_address") %>'></asp:Label>
                    </InsertItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lbl_cust_address" runat="server" Text='<%# 
Bind("cust_address") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Is Parent" Visible="false">
                  <%--      <EditItemTemplate>
                            <asp:TextBox ID="TextBox9" runat="server" Text='<%# 
Bind("is_parent") %>'></asp:TextBox>
                        </EditItemTemplate>--%>
                        <ItemTemplate>
                            <asp:Label ID="Label9" runat="server" Text='<%# 
Bind("is_parent") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                     <asp:TemplateField HeaderText="Edit Services" >
                      <ItemTemplate>
                           <asp:LinkButton ID="lnkButtonAssignServ" runat="server" Autopostback="true" CauseValidation="true" OnClick="btnAssignServ_Click"
                            Text="Edit Services" 
                           ></asp:LinkButton>
                           </ItemTemplate>
                      </asp:TemplateField>

                   <asp:TemplateField>
                        <EditItemTemplate>
                           <asp:LinkButton ID ="lnkUpdate" ToolTip="Update" runat="server" OnClick="onUpdate" CssClass="update-link"></asp:LinkButton>
                           <asp:LinkButton ID ="LinkCancel" ToolTip="Cancel" runat="server" CssClass="cancel-link" CausesValidation="false" OnClick="onCancel"></asp:LinkButton>
                        </EditItemTemplate>
                        <ItemTemplate>
                           <asp:LinkButton ID="LinkDelete" ToolTip="Delete" runat="server" CauseValidation="false" Autopostback="true" OnClick="onDelete"
                            OnClientClick="return confirm('Do you really want to delete it?')" CommandName="onDelete" CssClass="delete-link"></asp:LinkButton>
                           <asp:LinkButton ID="lnkButtonEdit" runat="server" CauseValidation="false"
                           CommandName="Edit" CssClass="edit-link" ToolTip="Edit"></asp:LinkButton>                            
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                </Columns>
            </asp:GridView>





当我试图在我的代码中访问Session ['cust_id']它,它显示一个错误,表示空值。





When I tried to access Session['cust_id'] it in my code, it is showing me an error saying null value.

protected void btnAssignServ_Click(object sender, EventArgs e)
        {
            GridViewRow row = (sender as LinkButton).NamingContainer as GridViewRow;
            gridView.SelectedIndex = row.RowIndex;
            TextBox cust_id = (TextBox)(gridView.Rows[gridView.SelectedIndex].FindControl("TextBox1"));
            Session["custid"] = cust_id.Text;
            Label displayName = (Label)(gridView.Rows[gridView.SelectedIndex].FindControl("Label2"));
            Session["Display_Name"] = displayName.Text;
            Label lblcustSpoc = (Label)(gridView.Rows[gridView.SelectedIndex].FindControl("lbl_cust_spoc"));
            Session["cust_spoc"] = lblcustSpoc.Text;
            Response.Redirect("AssignServToCustomer.aspx");
           
        }







请帮助。




Please help.

推荐答案

ErrorMessage = 无效的电子邮件ID ForeColor = 红色 />
< asp:RequiredFieldValidator ID = RequiredField1 runat = server\" ControlToValidate=\"TextBox4\" ErrorMessage =\"Enter Email ID\" Display=\"Dynamic\" ForeColor=\"Red\" /> $b $b </EditItemTemplate>
<ItemTemplate>
<asp:Label ID=\"Label4\" runat=\"server\" Text='<%#
Bind(\"cust_email\") %>'
></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=\"Services Id\" Visible=\"false\">
<%-- <EditItemTemplate>
<asp:TextBox ID=\"TextBox7\" runat=\"server\" Text='<%#
Bind(\"service_id\") %>'
></asp:TextBox>
</EditItemTemplate>--%>
<ItemTemplate>
<asp:Label ID=\"Label7\" runat=\"server\" Text='<%#
Bind(\"service_id\") %>'
></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=\"Services\">
&l t;InsertItemTemplate>
<asp:Label ID=\"Label4\" runat=\"server\" Text='<%#
Bind(\"service_display_name\") %>'
></asp:Label>
</InsertItemTemplate>
<%-- <EditItemTemplate>
<asp:TextBox ID=\"TextBox8\" runat=\"server\" Text='<%#
Bind(\"service_display_name\") %>'
></asp:TextBox>--
</EditItemTemplate>--%>
<ItemTemplate>
<asp:Label ID=\"Label8\" runat=\"server\" Text='<%#
Bind(\"service_display_name\") %>'
></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=\"Status\">
<InsertItemTemplate>
<asp:Label ID=\"LabelCustStatus\" runat=\"server\" Text='<%#
Bind(\"cust_status\") %>'
></asp:Label>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID=\"lbl_Cust_Status\" runat=\"server\" Text='<%#
Bind(\"cust_status\") %>'
></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=\"Spoc Name\">
<InsertItemTemplate>
<asp:Label ID=\"LabelCustSpoc\" runat=\"server\" Text='<%#
Bind(\"cust_spoc\") %>'
></asp:Label>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID=\"lbl_cust_spoc\" runat=\"server\" Text='<%#
Bind(\"cust_spoc\") %>'
></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=\"Address\">
<InsertItemTemplate>
<asp:Label ID=\"LabelCustAddress\" runat=\"server\" Text='<%#
Bind(\"cust_address\") %>'
></asp:Label>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID=\"lbl_cust_address\" runat=\"server\" Text='<%#
Bind(\"cust_address\") %>'
></asp:Label>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText=\"Is Parent\" Visible=\"false\">
<%-- <EditItemTemplate>
<asp:TextBox ID=\"TextBox9\" runat=\"server\" Text='<%#
Bind(\"is_parent\") %>'
></asp:TextBox>
</EditItemTemplate>--%>
<ItemTemplate>
<asp:Label ID=\"Label9\" runat=\"server\" Text='<%#
Bind(\"is_parent\") %>'
></asp:Label>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText=\"Edit Services\" >
<ItemTemplate>
<asp:LinkButton ID=\"lnkButtonAssignServ\" runat=\"server\" Autopostback=\"true\" CauseValidation=\"true\" OnClick=\"btnAssignServ_Click\"
Text=\"Edit Services\"
></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField>
<EditItemTemplate>
<asp:LinkButton ID =\"lnkUpdate\" ToolTip=\"Update\" runat=\"server\" OnClick=\"onUpdate\" CssClass=\"update-link\"></asp:LinkButton>
<asp:LinkButton ID =\"LinkCancel\" ToolTip=\"Cancel\" runat=\"server\" CssClass=\"cancel-link\" CausesValidation=\"false\" OnClick=\"onCancel\"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID=\"LinkDelete\" ToolTip=\"Delete\" runat=\"server\" CauseValidation=\"false\" Autopostback=\"true\" OnClick=\"onDelete\"
OnClientClick=\"return confirm('Do you really want to delete it?')\" CommandName=\"onDelete\" CssClass=\"delete-link\"></asp:LinkButton>
<asp:LinkButton ID=\"lnkButtonEdit\" runat=\"server\" CauseValidation=\"false\"
CommandName=\"Edit\" CssClass=\"edit-link\" ToolTip=\"Edit\"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>
" ErrorMessage="Invalid Email Id" ForeColor="Red"/> <asp:RequiredFieldValidator ID="RequiredField1" runat="server" ControlToValidate="TextBox4" ErrorMessage ="Enter Email ID" Display="Dynamic" ForeColor="Red" /> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label4" runat="server" Text='<%# Bind("cust_email") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Services Id" Visible="false"> <%-- <EditItemTemplate> <asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("service_id") %>'></asp:TextBox> </EditItemTemplate>--%> <ItemTemplate> <asp:Label ID="Label7" runat="server" Text='<%# Bind("service_id") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Services"> <InsertItemTemplate> <asp:Label ID="Label4" runat="server" Text='<%# Bind("service_display_name") %>'></asp:Label> </InsertItemTemplate> <%-- <EditItemTemplate> <asp:TextBox ID="TextBox8" runat="server" Text='<%# Bind("service_display_name") %>'></asp:TextBox>-- </EditItemTemplate>--%> <ItemTemplate> <asp:Label ID="Label8" runat="server" Text='<%# Bind("service_display_name") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Status"> <InsertItemTemplate> <asp:Label ID="LabelCustStatus" runat="server" Text='<%# Bind("cust_status") %>'></asp:Label> </InsertItemTemplate> <ItemTemplate> <asp:Label ID="lbl_Cust_Status" runat="server" Text='<%# Bind("cust_status") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Spoc Name"> <InsertItemTemplate> <asp:Label ID="LabelCustSpoc" runat="server" Text='<%# Bind("cust_spoc") %>'></asp:Label> </InsertItemTemplate> <ItemTemplate> <asp:Label ID="lbl_cust_spoc" runat="server" Text='<%# Bind("cust_spoc") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Address"> <InsertItemTemplate> <asp:Label ID="LabelCustAddress" runat="server" Text='<%# Bind("cust_address") %>'></asp:Label> </InsertItemTemplate> <ItemTemplate> <asp:Label ID="lbl_cust_address" runat="server" Text='<%# Bind("cust_address") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Is Parent" Visible="false"> <%-- <EditItemTemplate> <asp:TextBox ID="TextBox9" runat="server" Text='<%# Bind("is_parent") %>'></asp:TextBox> </EditItemTemplate>--%> <ItemTemplate> <asp:Label ID="Label9" runat="server" Text='<%# Bind("is_parent") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Edit Services" > <ItemTemplate> <asp:LinkButton ID="lnkButtonAssignServ" runat="server" Autopostback="true" CauseValidation="true" OnClick="btnAssignServ_Click" Text="Edit Services" ></asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <EditItemTemplate> <asp:LinkButton ID ="lnkUpdate" ToolTip="Update" runat="server" OnClick="onUpdate" CssClass="update-link"></asp:LinkButton> <asp:LinkButton ID ="LinkCancel" ToolTip="Cancel" runat="server" CssClass="cancel-link" CausesValidation="false" OnClick="onCancel"></asp:LinkButton> </EditItemTemplate> <ItemTemplate> <asp:LinkButton ID="LinkDelete" ToolTip="Delete" runat="server" CauseValidation="false" Autopostback="true" OnClick="onDelete" OnClientClick="return confirm('Do you really want to delete it?')" CommandName="onDelete" CssClass="delete-link"></asp:LinkButton> <asp:LinkButton ID="lnkButtonEdit" runat="server" CauseValidation="false" CommandName="Edit" CssClass="edit-link" ToolTip="Edit"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>





When I tried to access Session[’cust_id’] it in my code, it is showing me an error saying null value.





When I tried to access Session['cust_id'] it in my code, it is showing me an error saying null value.

protected void btnAssignServ_Click(object sender, EventArgs e)
        {
            GridViewRow row = (sender as LinkButton).NamingContainer as GridViewRow;
            gridView.SelectedIndex = row.RowIndex;
            TextBox cust_id = (TextBox)(gridView.Rows[gridView.SelectedIndex].FindControl("TextBox1"));
            Session["custid"] = cust_id.Text;
            Label displayName = (Label)(gridView.Rows[gridView.SelectedIndex].FindControl("Label2"));
            Session["Display_Name"] = displayName.Text;
            Label lblcustSpoc = (Label)(gridView.Rows[gridView.SelectedIndex].FindControl("lbl_cust_spoc"));
            Session["cust_spoc"] = lblcustSpoc.Text;
            Response.Redirect("AssignServToCustomer.aspx");
           
        }







Please help.




Please help.


Do not bind column which needs to be kept hidden for user. Instead of that you can use hidden field and you can get value of the hidden field as shown in below sample :



ASPX Code:

Do not bind column which needs to be kept hidden for user. Instead of that you can use hidden field and you can get value of the hidden field as shown in below sample :

ASPX Code:
<asp:GridView ID="gridMain" runat="server" AutoGenerateColumns="False" >
    <Columns>
        <asp:TemplateField HeaderText="EmployeeName">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("EmployeeName") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label2" runat="server" Text='<%# Bind("EmployeeName") %>'></asp:Label>
                <input type="hidden" runat="server" id="hiddenEmployeeId" value='<%#Eval("EmployeeID") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Edit Services">
            <ItemTemplate>
                <asp:LinkButton ID="lnkButtonAssignServ" runat="server" Autopostback="true" CauseValidation="true" OnClick="btnAssignServ_Click"

                    Text="Edit Services"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>







Code Behind :
$ b$b




Code Behind :

protected void btnAssignServ_Click(object sender, EventArgs e)
        {
            GridViewRow row = (sender as LinkButton).NamingContainer as GridViewRow;
            gridMain.SelectedIndex = row.RowIndex;
            var customerId = gridMain.Rows[gridMain.SelectedIndex].FindControl("hiddenEmployeeId") as HtmlInputHidden;

            if (customerId != null)
            {
                Session["custid"] = customerId.Value;
            }
        }


这篇关于在GridView中获取隐藏字段的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆