ASP.NET学習でよくあるエラーのまとめ
前書き
.NET学習でよくある間違い(随時更新)
ドロップダウン・ボックスの紐付き値
public void ddlist()
{
this.DropDownList1.DataTextField = "DeviceName";
DataValueField = "DeviceID";
this.DropDownList1.DataSource = dbl.ddlist();
this.DropDownList1.DataBind();
Insert(0, new ListItem("All", "0"));
}
this.DropDownList1.DataTextField = "DeviceName"です。
DataTextField : ユーザーに表示されるデータベースカラム
DataValueField : データソースをバインドすることは、一意の識別カラムをバインドすることと同じである
データソース:データソース、バインディングSQL言語は、データを表示することができます
DataBind: 表示する前にデータをバインドする、関数です。
Items.Insert(0, new ListItem("All", "0")) を実行します。
ltems はコレクションを表します。
insert() 2つの引数 (int index, Ltems item)
最終的な効果
タイ・バリューGridView
public void jiaz()
{
this.GridView1.DataSource = dbl.show();
this.GridView1.DataBind();
}
データソース:データソース、バインディングSQL言語は、データを表示することができます
DataBind:表示するデータをバインドする、関数です。
最終的な効果
データの削除
- クリックすると削除されます
CommandAgument と CommandName は一緒に使用され、一般的に削除のために慣習的に使用されます。
は、RowCommand イベントで実行されます。
最初にIDをバインドする
CommandNameを再度バインドする
Rowcommandイベントの内部に移動します。
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName=="del")
{
int id = int.Parse(e.CommandArgument.ToString());
bool b1 = dbl.del(id);
if (b1)
{
Response.Write("<script>alert('Deleted successfully')</script>");
jiaz();
}
else
{
Response.Write("<script>alert('Deletion failed')</script>");
}
}
}
e.CommandName=="del"
RowCommandは何があっても最初にここに来るので、e.CommandName=="del"に基づいて、削除操作を行うかどうかを判断してください。
int id = int.Parse(e.CommandArgument.ToString());
実行を削除するSQL文は、カラムを一意に特定するIDを基にしたターゲット
修正
- クリックすると変更されます
更新イベントを発生させるために、CommandNameをupdateに変更します。
バインディングID、以下はキーとバリューのペアです。
なぜcommandAgumentをバインドしないのか?なぜなら、前述のように commandAgument は Rowcommand イベントで使用されるからです。また、CommandName を update に変更したので、Rowupdating イベントで使用されるようになります。
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int id = int.Parse(this.GridView1.DataKeys[e.RowIndex]["DeviceID"].ToString());
bool b1 = dbl.up(id);
if (b1)
{
Response.Write("<script>alert('modified successfully')</script>");
jiaz();
}
else
{
Response.Write("<script>alert('Modification failed')</script>");
}
}
int id = int.Parse(this.GridView1.DataKeys[e.RowIndex]["DeviceID"].ToString());
SQLステートメントを修正して、変更の一意の識別カラムも取得します。
このGridView1のDataKeys
[e.RowIndex] ["DeviceID"]: 現在の行のデータベース識別カラムです。
別のページへの割り当てを変更する
Session["ID"] = this.GridView1.DataKeys[e.RowIndex]["BookID"].ToString();
Label Booksname = (Label)this.GridView1.Rows[e. RowIndex].FindControl("Label2");
Session["BookName"] = Booksname.Text;
Response.Redirect("add.aspx");
Session["ID"] = this.GridView1.DataKeys[e.RowIndex]["BookID"].ToString();
見つかったIDはセッションに割り当てられる
<ブロッククオートLabel Booksname = (Label)this.GridView1.Rows[e. RowIndex].FindControl("Label2");
現在の行に対応する Label2 コントロールを検索します。
Session["BookName"] = Booksname.Text。
見つかったコントロールの値テキストをセッションに渡します。
Lableはタイプ、Gridviewがどのようなコントロールであるかを見て、どのようなタイプに変換します。
FindControl (コントロールを見つける)
別のページバインディング値への割り当てを変更する
テキストボックスのバインディング値
this.TextBox2.Text = Session["BookName"].ToString();
ドロップダウン・ボックスのバインド値
if (Session["BookiS"].ToString().Contains("Yes"))
{
this.DropDownList1.SelectedIndex = 0;
}
else
{
this.DropDownList1.SelectedIndex = 1;
}
セッションにこの値が含まれているかどうかを判断する
this.DropDownList1.SelectedIndex = 0;
SelectedIndex = 0は、最初のものが表示されることを意味します。
ページ変更でエラーが報告されない
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
This.GridView1.PageIndex = e.NewPageIndex; //change page without error
jiazGridview();
}
グリッドビューのページ変更でエラーが報告されない
ASP.NET学習コモンエラーまとめの記事は以上となります。ASP.NET共通エラーの詳細については、過去の記事を検索するか、引き続き以下の記事を参照してください。
関連
-
NET6新機能 - 暗黙の名前空間参照
-
ASP.NET CoreでURLを設定する5つの方法
-
net core downlink tracking skywalking インストールと使いやすいチュートリアル
-
.NET開発サーバー アプリケーション管理ツール
-
ASP.NET Core Dependency Injectionフレームワークの活用
-
ASP.NET Core ディペンデンシーインジェクションの詳細
-
ASP.NET Core MVC Dependency Injection ビューとコントローラ
-
認証プロセスの記録にjwtを使用したネット
-
ajaxでポップアップアラートボックス
-
ASP.NETでのRadioButton(ラジオボタン)の使用について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
.netcoreプロジェクトでIStartupFilterを使用するためのチュートリアル
-
ASP.NET Core 6で依存関係を解決する3つの方法
-
ASP.NET CoreでCAPの取引詳細を自動で有効にする
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
ネットパフォーマンスチューニング - ArrayPool 詳細
-
ASP.NET Coreで複数のサービス実装クラスをインジェクトする方法
-
asp.net core3.1 cookieとjwtのハイブリッド認証による多様な認証ソリューションの実現
-
名前 'xxx' が現在のコンテキストに存在しない エラー解決方法の1つ
-
Application_End イベントをブロックする解決策
-
ASP.NETのオンライン統計とアプリケーションとセッションを使用した訪問履歴