C# dropdownlist选择的值让我困惑吗?
当我从下拉列表中选择我的组时,我有asp.net页面下拉列表和按钮 然后单击按钮,然后通过查询字符串发送所选值(组id) 然后根据查询字符串中的id查看页面组详细信息这是第一次发生 但当我从dropdownlist更改group时,查询字符串仍然具有最后一个id 还有我的密码C# dropdownlist选择的值让我困惑吗?,c#,asp.net,events,webforms,C#,Asp.net,Events,Webforms,当我从下拉列表中选择我的组时,我有asp.net页面下拉列表和按钮 然后单击按钮,然后通过查询字符串发送所选值(组id) 然后根据查询字符串中的id查看页面组详细信息这是第一次发生 但当我从dropdownlist更改group时,查询字符串仍然具有最后一个id 还有我的密码 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) FillList(); if (Request.QueryS
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) FillList();
if (Request.QueryString["id"] != null)
{
FillData();
div_General.Visible = true;
div_Special.Visible = true;
dropdownlist1 .SelectedValue = Request.QueryString["id"];
}
}
protected void button1_Click(object sender, EventArgs e)
{
if (dropdownlist1 .SelectedIndex == 0)
{
par_ErrorMessage.InnerText = "choose group first ...";
par_ErrorMessage.Visible = true;
}
else Response.Redirect("Authority.aspx?id=" + dropdownlist1.SelectedValue);
}
当我点击按钮并假设新值在
dropdownlist页面生命周期首先转到页面加载,并在此代码中
dropdownlist1 .SelectedValue = Request.QueryString["id"];
将所选值返回到从按钮1读取前的最后一个值
我的填充列表方法
private void FillList()
{
oGroup = new Cls_Groups();
cmb_Group.DataSource = oGroup.LoadGroups();
cmb_Group.DataBind();
cmb_Group.Items.Insert(0, "-- اختر مما يلي --");
}
请,我需要帮助您可以在页面加载事件后为下拉列表选择值
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FillList();
Viewstate["id"] = Request.QueryString["id"];
if (Request.QueryString["id"] != null)
{
FillData();
div_General.Visible = true;
div_Special.Visible = true;
}
}
}
现在在页面\u PreRender中,您可以在下拉列表中选择如下值:-
protected void Page_PreRender(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
if (ViewState["id"] != null)
{
dropdownlist1 .SelectedValue = ViewState["id"].ToString();
}
}
}
希望这将帮助您我认为您在下拉
filllist()时犯了错误代码>方法
当page为notpostback
但当你在做重定向时,用户改变下拉选择
当然,这段时间不会发生回发
,所以您需要再次填写下拉列表
if (!IsPostBack) FillList();
if (Request.QueryString["id"] != null)
{
FillData();
div_General.Visible = true;
div_Special.Visible = true;
FillList();
dropdownlist1 .SelectedValue = Request.QueryString["id"];
}
一个变通
在aspx页面中创建一个隐藏字段(hiddenfield1),并在页面加载方法中进行更改
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) FillList();
if (Request.QueryString["id"] != null)
{
FillData();
div_General.Visible = true;
div_Special.Visible = true;
hiddenfield1.Value = dropdownlist1.SelectedValue.text;
}
}
在您的aspx页面中,在您的正文中没有注册加载函数作为on_loadabc()
现在在这个函数中执行以下操作
<script type="text/javascript">
function on_loadabc(){
var dd = document.getElementById('<%=dropdownlist1.ClientId %>');
var hdnfield = document.getElementById('<%=hiddenfield1.ClientId %>');
for (var i = 0; i < dd.options.length; i++) {
if (dd.options[i].text === hdnfield.value ) {
dd.selectedIndex = i;
break;
}
}
}
</script>
_loadabc()上的函数{
var dd=document.getElementById(“”);
var hdnfield=document.getElementById(“”);
对于(变量i=0;i
希望这能起作用。是
FillList()
将数据源分配给下拉列表的方法吗?私有void FillList(){oGroup=new Cls_Groups();cmb_Group.DataSource=oGroup.LoadGroups();cmb_Group.DataBind();cmb_Group.Items.Insert(0,--choose Group-->)}键盘上的“.”起作用(您写道“asp.net”)。请使用相同的“.”来分隔句子-这使问题更容易理解。请使用更新的代码10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000