如何使用 QueryString 获取 TextBox 的文本并将其从 JavaScript 发送到代码隐藏

How to get text of a TextBox and send it from JavaScript to code-behind using QueryString

我知道我问了 2 个问题,但我真的卡住了。我有一个用于添加和更新记录的表单,当我单击“更新”按钮时(我的“添加”在弹出窗口中运行良好),我希望弹出窗口显示我从脚本中获取的记录的属性(即每个texbox/dropdownlist 填入正确的值)。

这是我的脚本:

function btnEditEP_Click() {
            var recID = document.getElementById('<%=tboxEdit.ClientID%>').textContent;
            //if (recID !=null) {
            //    alert("ok what now?");
            //}
            window.open("editPopupEP.aspx?Txt=" + recID, "_blank", "toolbar=yes", "resizable=yes", "scrollbars=yes");
        }

这是我在 editPopupEp.aspx.cs

中的 PageLoad
protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                int recID = Convert.ToInt32(Request.QueryString["Txt="]);
                ...
                ..
                .

如果我可以获得记录 ID,填充输入字段很容易,但我 need/want 获取 TextboxText 并使用 [=17 从代码隐藏中接收它=].

弹出窗口 window 有效并且没有错误,但是 recID 中有 0 并且没有这样的记录。

访问QueryString集合时必须省略等号,像这样:

Request.QueryString["Txt"]

在下一行中您使用的是 textContent,它在 IE8 或更低版本中不可用。您是否有机会使用 IE8?

var recID = document.getElementById('<%=tboxEdit.ClientID%>').textContent;

否则您可以尝试这样的操作:

var recID =  document.getElementById('<%=tboxEdit.ClientID%>').value;

在您的 page_load 活动中,您可以使用以下代码:

int recID = Convert.ToInt32(Request.QueryString["Txt"]);

如果文本框总是有整数值,请使用上面的代码,否则使用下面的代码。

int recID;
if(Int32.TryParse(Request.QueryString["Txt"], out recID))
{
 //Do whatever you want to do with recID
}