Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# dropdownlist选择的值让我困惑吗?_C#_Asp.net_Events_Webforms - Fatal编程技术网

C# dropdownlist选择的值让我困惑吗?

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

当我从下拉列表中选择我的组时,我有asp.net页面下拉列表和按钮 然后单击按钮,然后通过查询字符串发送所选值(组id) 然后根据查询字符串中的id查看页面组详细信息这是第一次发生 但当我从dropdownlist更改group时,查询字符串仍然具有最后一个id 还有我的密码

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