【发布时间】:2021-05-05 16:01:48
【问题描述】:
我每天在javascript中创建选择选项,然后单击一个asp:按钮以提交添加的选项。但我无法从 ListBox 中得到它。请帮帮我!!
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Hello.aspx.cs" Inherits="BeyondInfo.Hello" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Welcome to My First ASP.NET</title>
<script type="text/javascript">
function add() {
var count = document.getElementById("count");
if (count.value == "") {
count.value = 1;
}
count.value = parseInt(count.value) + 1;
var num = count.value;
var listBox2 = document.getElementById("ListBox2");
var optn = document.createElement("OPTION");
optn.value = num;
optn.text = num + "_add";
listBox2.options.add(optn);
}
</script>
</head>
<link href="Common.css" rel="stylesheet" />
<body>
<form id="form1" runat="server">
<div style="height: 277px">
<asp:ListBox ID="ListBox2" runat="server">
<asp:ListItem>b1222222222222222222222222222</asp:ListItem>
<asp:ListItem>b2</asp:ListItem>
<asp:ListItem>b3</asp:ListItem>
<asp:ListItem>b4</asp:ListItem>
</asp:ListBox>
<input id="count" type="hidden" />
<input id="btnAdd" type="button" value="ADD" onclick="add()"/>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
</form>
</body>
</html>
</p>
Hello.aspx.cs
public partial class Hello : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string sel = "";
foreach (ListItem item in ListBox2.Items) {
sel +=item.Text + ",";
}
Label1.Text = sel;
}
}
【问题讨论】:
-
你不能使用 JS 和 webforms 来做到这一点,你必须使用 AJAX control toolkit 的 AJAX 控制面板
-
感谢您的回答,我会尝试使用您的方式,但首先,您能告诉我该代码有什么问题吗?
-
那么 ListBox Id 不会是
ListBox,它会是一些自动生成的值。document.createElement("OPTION")将不起作用,因为您还需要将选项添加到 ViewModel 并且您无法执行该客户端。这就是您需要使用 Ajax 控制工具包的原因。 TBH,你为什么要学习网络表单?如今,Webforms 几乎是不复存在的技术。 MVC 是较新的等价物。 -
感谢您的帮助,从您的回答中,我可能需要了解更多有关 Aps.net 的信息。
标签: javascript c# webforms