我一直试图找出我的后端脚本的问题了一天,它一直有点令人沮丧。基本上,后端脚本没有从我的网页上的下拉列表中抓取数据。它可以在按下按钮时注册,并可以保存到SQL数据库,但它不会抓取下拉列表中的数据。像“部门1”我试过几种方法,但似乎总是空白。
我在网页上有一个按钮和两个下拉唐斯,由以下人员发起:
<form id="form1" runat="server">
<label for="department">Department:<span class="required">*</span></label>
<asp:DropDownList ID="departmentDropDown" runat="server" EnableViewState="true" required></asp:DropDownList>
<label for="partNumber">Part Number:<span class="required">*</span></label>
<asp:DropDownList ID="partNumberDropDown" runat="server" required></asp:DropDownList>
<asp:Button runat="server" ID="myButton" Text="Click me" OnClick="myButton_Click" />
</form>
字符串
我有一个后端:
protected void myButton_Click(object sender, EventArgs e)
{
// Get selected values from dropdowns
string selectedDepartment = departmentDropDown.SelectedValue;
string selectedPartNumber = partNumberDropDown.SelectedValue;
// Write the selected values to the response
Response.Write("Selected Department:" + selectedDepartment + "<br/>");
Response.Write("sent by:" + sender + "<br/>");
Response.Write("sent by:" + sender + "<br/>");
Response.Write("Selected Part Number: "+ selectedPartNumber+ "<br/>");
Response.Write("<br/> NOT SAVED!");
}
型
我一直在尝试从后端的几个不同的React,看看发生了什么事,但它似乎总是做同样的事情。我很想使这一工作!
我目前如何填充下拉列表:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
}
PopulateDepartmentDropdown();
PopulatePartNumberDropdown();
}
private void PopulateDepartmentDropdown()
{
// Replace this with your logic to fetch department data from a data source
DataTable departmentData = GetStaticDepartmentsData();
//DataTable departmentData = GetDepartmentsData();
// Clear existing items in the dropdown
departmentDropDown.Items.Clear();
// Add an initial blank item if needed
departmentDropDown.Items.Add(new ListItem("-- Select Department --", ""));
// Add items to the dropdown from the DataTable
foreach (DataRow row in departmentData.Rows)
{
// Assuming that 'DepartmentIDColumn' and 'DepartmentNameColumn' are column names in your DataTable
string departmentID = row["department"].ToString();
string departmentName = row["department"].ToString();
departmentDropDown.Items.Add(new ListItem(departmentName, departmentID));
}
}
private void PopulatePartNumberDropdown()
{
// Replace this with your logic to fetch part number data from a data source
//DataTable partNumberData = GetPartNumbersData();
DataTable partNumberData = GetStaticPartNumbersData();
// Clear existing items in the dropdown
partNumberDropDown.Items.Clear();
// Add an initial blank item if needed
partNumberDropDown.Items.Add(new ListItem("-- Select Part Number --", ""));
// Add items to the dropdown from the DataTable
foreach (DataRow row in partNumberData.Rows)
{
// Assuming that 'PartNumberIDColumn' and 'PartNumberNameColumn' are column names in your DataTable
string partNumberID = row["partnumbers"].ToString();
string partNumberName = row["partnumbers"].ToString();
partNumberDropDown.Items.Add(new ListItem(partNumberName, partNumberID));
}
}
private DataTable GetStaticDepartmentsData()
{
DataTable departmentsData = new DataTable();
departmentsData.Columns.Add("department");
// Add static department data
departmentsData.Rows.Add("DepartmentA");
departmentsData.Rows.Add("DepartmentB");
departmentsData.Rows.Add("DepartmentC");
return departmentsData;
}
private DataTable GetStaticPartNumbersData()
{
DataTable partNumbersData = new DataTable();
partNumbersData.Columns.Add("partnumbers");
// Add static part number data
partNumbersData.Rows.Add("12345");
partNumbersData.Rows.Add("67890");
partNumbersData.Rows.Add("ABCDE");
return partNumbersData;
}
型
1条答案
按热度按时间gstyhher1#
在你的标记中有一些奇怪的地方已经被清理掉了。带有
EnableViewState = "true"
的标签已经被删除了,因为这里不需要它。还有几个地方的工作required
只是在你的asp标签中。这可能是有效的,但是我以前从来没有见过它,而且在短时间内找不到它的参考。最后,作为个人喜好的问题,如果你没有在标签里面写东西,让它们自动关闭以便于阅读。字符串
你的Page_load写东西的方式是错误的。而不是检查
isPostback = true
,你需要isPostBack = false
,因为我们正在寻找初始页面加载。我也清理了你如何数据绑定你的控件一点。你不需要循环数据表。简单地分配它,设置文本/值字段,并调用数据绑定,如你所见。值得注意的一点是,在构建临时数据源时,请使其与您希望从主数据源获得的格式保持一致。我调整了列名,并根据您在相应方法中的注解向您正在创建的数据表添加了一列。如果这不是您的列的名称,则可以进行调整。
型