0

コード ビハインドを使用してデータベースから値を取得したドロップダウン リストがあります。

ソースからデータを読み取った後、「.. 新しいスキルを追加」という新しい値を追加しました。

ユーザーがその項目をクリックすると、DropDownList に記載されていないスキルを追加するために小さなページ (または新しいページ) を開く必要があります。

if (!IsPostBack)
{
    SqlConnection myConn = new SqlConnection(@"Data Source=USER-PC\SQLEXPRESS;Initial Catalog=KKSTech;Integrated Security=True");
    SqlCommand myCmd = new SqlCommand(
        "SELECT SkillName, SkillID FROM Skills", myConn);
    myConn.Open();
    SqlDataReader myReader = myCmd.ExecuteReader();

    //Set up the data binding.
    DropDownList1.DataSource = myReader;
    DropDownList1.DataTextField = "SKillName";
    DropDownList1.DataValueField = "SkillID";
    DropDownList1.DataBind();

    //Close the connection.
    myConn.Close();
    myReader.Close();

    //Add the item at the first position.
    DropDownList1.Items.Insert(0, "..Add New Skill");
}

これは私のコード ビハインド ファイルです。今すぐリンクするにはどうすればよいですか?

4

4 に答える 4

1

このようなSelectedIndexChangedイベントハンドラーを追加しますdropdown

void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
        if(ddl.SelectedIndex == 0)
        Response.Redirect("Add_New_Skill.aspx");
    }

「...新しいスキルを追加」の位置をリストの最後にしたい場合

これを使って

ddl.Items.Insert(ddl.Items.Count, "...Add New Skill");

別のページにリダイレクトするには、これを行う必要があります

void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
    if(ddl.SelectedIndex == ddl.Items.Count-1)
       Response.Redirect("Add_New_Skill.aspx");
}
于 2012-07-27T07:25:26.740 に答える
1

SelectedIndexChanged イベントと SelectedValue プロパティを使用する必要があります。

   void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
       if(String.Compare(ddl.SelectedValue,"..Add New Skill",true)==0)
       Response.Redirect("Add_New_Skill.aspx");
    }
于 2012-07-27T07:36:03.697 に答える
0

trueに設定AutoPostBackします。そうすれば、ユーザーがオプションを変更すると、ページがサーバーに自動的に投稿されます。

このSelectedIndexChangedイベントを処理し、そこにある追加ページにリダイレクトします。

  • ユーザーを追加ページに移動します。
  • 詳細をデータベースに追加します。
  • ユーザーをこのページに戻します。
  • リストはデータベースから再ロードされ、値を取得するまで続きます。

特別なリンクは必要ありません。

于 2012-07-27T07:25:02.780 に答える
0

これは機能しています

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bindDropdownlist()
        }
    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string getvalue = DropDownList1.SelectedItem.Value;
        if (getvalue == "..Add New Skill")
        {
            Response.Redirect("Default.apsx");
        }
    }

  public void bindDropdownlist()
    {
        SqlDataAdapter dap = new SqlDataAdapter("select coloumn1,colum2 from table", con);
        DataSet ds = new DataSet();
        dap.Fill(ds);
        DropDownList1.DataSource = ds.Tables[0];
        DropDownList1.DataTextField = "coloumn1";
        DropDownList1.DataValueField = "colum2 ";
        DropDownList1.DataBind();
        DropDownList1.Items.Insert(0, "..Add New Skill");
    }
}

<div>
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
            onselectedindexchanged="DropDownList1_SelectedIndexChanged">
    </asp:DropDownList>
    </div>
于 2012-07-27T08:05:01.870 に答える