asp.net C#アプリケーションのボタンを使用せずに、dropdownListまたはTextBoxを使用してデータベースに値を追加するにはどうすればよいですか?
3 に答える
AutoPostBackプロパティをtrueに設定し、インデックス変更イベントに保存する必要があります。
<asp:DropDownList
ID="DropDownList1"
runat="server"
AutoPostBack="true"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
>
<asp:ListItem>option1</asp:ListItem>
<asp:ListItem>option2</asp:ListItem>
</asp:DropDownList>
protected void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
//save data here
}
ドロップダウンリストの場合は、簡単です。「AutoPostBack」プロパティを「true」に設定します。そして、以下に示すように「SelectedIndexChanged」イベントを処理します。
protected void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
//save data here
}
ただし、テキストボックスにはサーバー側イベント「TextChanged」があり、テキストボックスでも「AutoPostBack」を「true」に設定することで同じ方法を使用できます。
protected void TextBox1_TextChanged(object sender, System.EventArgs e)
{
//do something here
}
このテキスト ボックス イベントの欠点は、キーストロークごとに発生することです。
したがって、すべてのキーストロークでデータベース操作を処理するには適していません。
jQuery と非表示のボタンが役立ちます。
asp ボタンを用意し、その可視性を false に設定します。以下に示すように、サーバー側でクリックイベントを処理します。
protected void Button1_Click(object sender, System.EventArgs e)
{
////save data here
}
テキスト ボックスに対して、以下に示すように jQuery .blur() イベントを接続し、そこから非表示のボタンのクリック イベントを発生させます。
$("#TextBox1").blur(function() {
$("#Button1").click();
});
これにより、テキストボックス値の編集を停止すると、サーバー側でボタンクリックイベントが発生します。サーバー側のボタンクリックイベントからデータベース操作を行います。
ページロードイベントを通じて実装できると思います