下拉值不变
本文关键字: | 更新日期: 2023-09-27 17:49:50
我试图在下拉菜单中绑定我的打印机名称并管理显示下拉菜单中所有的打印机名称。当我尝试获取所选项目的值时,它会显示所有打印机的第一个值。下面是代码
绑定打印机名称的代码:
PrintModuleAX printModuleAX = new PrintModuleAX();
var result = printModuleAX.GetAllPrinterNames();
JObject o = JObject.Parse(result);
JArray sizes = (JArray)o["PrinterNames"];
var dt = new DataTable();
dt.Columns.Add("PrinterValue");
dt.Columns.Add("PrinterName");
for (int i = 0; i < sizes.Count; i++)
{
dt.Rows.Add((string)sizes[i], (string)sizes[i]);
}
ddlPrinterName.DataSource = dt;
ddlPrinterName.DataTextField = dt.Columns["PrinterName"].ToString();
ddlPrinterName.DataValueField = dt.Columns["PrinterValue"].ToString();
ddlPrinterName.DataBind();
获取选定值的代码:
var printername = ddlPrinterName.Text.ToString();
var printername1 = ddlPrinterName.SelectedValue.ToString();
var printername2 = ddlPrinterName.SelectedItem.ToString();
printername
, printername1
, printername2
显示相同的值,即使我选择了不同的打印机
检查每次页面加载时是否发生数据绑定。(使用if (!page.ispostback))
试试下面的代码
ddlPrinterName.DataSource = dt;
//just specify the column name
ddlPrinterName.DataTextField = "PrinterName";
ddlPrinterName.DataValueField = "PrinterValue";
ddlPrinterName.DataBind();
var printername1 = ddlPrinterName.SelectedItem.Text; //gives text
var printername2 = ddlPrinterName.SelectedItem.Value; //gives value