繁体   English   中英

如何在下一页中获取内容占位符的隐藏字段值

[英]How can get the content place holder hidden field values in the next page

我有两个aspx页面, bottle.aspxcap.aspx

将表单填写到bottle.aspx我应该可以将该表单提交给cap.aspx ,这可以正常工作。 但是在bottle.aspx页面中,我有一些hidden fields ,这些hidden fields在其中将值分配给JavaScript函数中的那些hidden fields 现在,当我尝试使用Request.Form["HiddenfiledId"]cap.aspx.cs文件中获取hidden field值时,我正在获取null值。

Bottle.aspx代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/Meb.Master" AutoEventWireup="true" CodeBehind="bottle.aspx.cs" Inherits="xxxx" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MHead" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="NavBarContent" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="Breadcrumbs" runat="server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="MiddleColumnContent" runat="server">
    <style>
        .vTop {
            vertical-align: top !important;
        }

        .rd1 {
            margin: 1px 0px 0 6px;
        }

        .auto-style2 {
            margin-right: 294px;
        }
    </style>
    <script type="text/javascript">
        function SelectSingleRadiobutton(rdbtnid,checked) {
            var rdBtn = document.getElementById(rdbtnid);

            var rdBtnList = document.getElementsByTagName("input");
            for (i = 0; i < rdBtnList.length; i++) {
                if (rdBtnList[i].type == "radio" && rdBtnList[i].id != rdBtn.id) {
                    rdBtnList[i].checked = false;
                }
            }
            if (checked == false) {
                document.getElementById("rbNewMessage").checked = false;
            }
            var hdnfldVariable = document.getElementById("hdnfldVariable")
            hdnfldVariable.value = rdbtnid;
        }
    </script>
    <form runat="server" method="post" action="Cap.aspx">
        <asp:gridview id="gvStatusMessages">
            <Columns>  
                <asp:TemplateField ItemStyle-CssClass="vTop rd1">
                    <ItemTemplate>
                        <asp:RadioButton ID="rbSelectStatus" OnClick="javascript:SelectSingleRadiobutton(this.id,false)" />
                        <asp:HiddenField ID="hdnfldVariable" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:gridView>
        <asp:Button runat="server" Text="Submit Message" ID="btnSubmit" CssClass="bluelink" OnClientClick="f1(this)" />
        <asp:HiddenField ID="hdfButtonClciked" runat="server" />
    </form>
</asp:Content>

现在在cap.aspx.cs文件中,我正在尝试获取hidden field值。

 string btnClicked = Request.Form["hdfButtonClciked"];
 string msNum = Request.Form["hdnfldVariable"]

但是它返回null值。

任何想法?

尝试

Approach1

HiddenField btnClicked = ((HiddenField)Page.PreviousPage.FindControl("hdfButtonClciked")).Value;
HiddenField msNum = ((HiddenField)Page.PreviousPage.FindControl("hdnfldVariable")).Value;

要么

Approach2

使用Session而不是HiddenField

注意:第一种方法很可能会生成NullReferenceException ,请谨慎处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM