您可以使用 JavaScript 来完成,因为浏览器不会将所选文本发送到任何地方。
一个技巧是将此类代码放在 .aspx 页面的最底部:(在 .aspx 之前</body>
)
var arrDDLs = document.getElementsByTagName("select");
for (var i = 0; i < arrDDLs.length; i++) {
var oDDL = arrDDLs[i];
if (!oDDL.name || oDDL.name.length === 0)
continue;
var inputName = oDDL.name + "_text";
var input = document.createElement("input");
input.type = "hidden";
input.name = inputName;
input.id = inputName;
oDDL.form.appendChild(input);
oDDL.onchange = function () {
var index = this.selectedIndex;
var text = (index >= 0) ? this.options[index].text : "";
var inputName = this.name + "_text";
var input = document.getElementById(inputName);
input.value = text;
};
//populate initial text:
oDDL.onchange();
}
这段代码本质上是在另一个答案中实现第一个想法,并获取所选文本,您只需阅读选择键的请求值加上“_text”,例如:
string selectedText = Request.Form[m.ParentId + "_text"];
现场测试用例。(仅限 JavaScript 端)