1

asp.netにリストボックスがあり、データベースからリストアイテムをバインドしています。「送信」というボタンがあります。ページが読み込まれると、リストボックスに目的の値が表示されますが、任意の値を選択して送信ボタンを押すと、リストボックスの選択されたインデックスが -1 に設定されます。

誰かが適切なインデックス値を取得するのを手伝ってくれますか?

 <div class="PageRight">
        <asp:ListBox ID="ListOfSql" runat="server" SelectionMode="Single" DataTextField="sql_name"
            DataValueField="sql_text" Style="margin-left: 0px" Width="205px" EnableViewState="true"
            OnSelectedIndexChanged="ListOfSql_SelectedIndexChanged">
        </asp:ListBox><br />
        <asp:Button ID="btnPreSqlExe" runat="server" Text="Sumbit" 
        onclick="btnPreSqlExe_Click">
        </asp:Button>
     </div>

そして.csページは

 protected void btnPreSqlExe_Click(object sender, EventArgs e)
    {

            txtQuery.Text = ListOfSql.SelectedItem.Value.ToString();

        }

listBox でデータをバインドするには、次のコードを使用しています

Private void loadSqlList()
    {
        if (!IsPostBack)
        {
            conn.Open();
            DataTable dt = new DataTable();
            DataSet ds = new DataSet();
            string preSql = "select sql_name, sql_text from cn_sql_log order by sql_name";
            OracleDataAdapter da = new OracleDataAdapter(preSql, conn);
            da.Fill(ds);
            ListOfSql.DataSource = ds;
            ListOfSql.DataTextField = "Sql_Name";
            ListOfSql.DataValueField = "sql_Text";
            ListOfSql.DataBind();
            ListOfSql.SelectedIndex = 0;
            conn.Close();
        }

page_load でloadSqlList()を呼び出す

4

0 に答える 0