我的场景是这样的。用户单击按钮,将出现一个带有复选框列表的模式对话框。当用户进行选择并在客户端单击事件中单击“确定”时,我想使用用户选择的值列表设置一个隐藏字段。用户继续表单的其余部分并单击另一个按钮以提交整个表单。从后面的代码(按钮单击事件)中,我需要访问填充到隐藏字段中以保存到数据库的值列表。
客户端点击事件代码
function onOk() {
var selectedItems = [];
$("[id*=CategoryCheckboxList] input:checked").each(function () {
selectedItems.push(this.value);
});
//stuff the values in the hidden field for later postback
$("#hiddenCategoryHash").value = selectedItems; //appears to work, no errors
$("#debugcat").text(selectedItems); //stuff into a div for testing (works)
$("#dbg").text = selectedItems; //attempted to stuff in Textbox. FAIL
}
应该注意的是,我也尝试过使用 html 输入控件并使用 request.form 以这种方式检索值,但也不起作用。我在这里有正确的方法吗?我应该以不同的方式解决这个问题吗?
这是标记
<asp:HiddenField ID="hiddenCategoryHash" runat="server" EnableViewState="true" />
<asp:TextBox ID="dbg" runat="server"></asp:TextBox>
<input type="hidden" name="conf4" value="test" />
最后是后面的代码
xfer.IsActive = True
xfer.IsDiscontinued = False
Dim hiddenval = Request.Form("hiddenCategoryHash")
Dim test = hiddenCategoryHash.Value
Dim debugdiv = Request.Form("debugcat")
xfer.CategoryIDhash = hiddenval
dc.Transfers.InsertOnSubmit(xfer)
dc.SubmitChanges()
感谢您的所有建议。事实证明,我必须在我的 jquery 选择器中获取隐藏控件的完整 clientID,如下所示:$("#<%= hiddenCategoryHash.ClientID %>").val(selectedItems);。