1. ホーム
  2. Web プログラミング
  3. ASP.NET

ASP.NET学習でよくあるエラーのまとめ

2022-01-14 22:49:48

前書き

.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共通エラーの詳細については、過去の記事を検索するか、引き続き以下の記事を参照してください。