0

1ページに2つのグリッドビューがあります。commandargument( "id")からではなく最初のグリッドビューをリストしました。2番目のグリッドビューをリストしました。しかし、これらのグリッドビューで何かをしているので、最初のグリッドビューを実行できます。 idをキャッチしてリストします。それはそれが持っているすべてをリストしています。しかし、2つ目は、その製品のカテゴリIDだけをリストしたいと思います。手伝って頂けますか ?そして言葉の翻訳;

Doldur:塗りつぶし/ Guncelle:更新/ Sil:削除/ vazgec:キャンセル

間違った場所は疑問符でいっぱいです。ご協力いただきありがとうございます

     private void Doldur()
    {
        WebHelper.FillGridView(myGrid, Service.GetAllCategories());
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
            return;

        Doldur();
    }


    protected void myGrid_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        GridViewRow row = null;

        if (e.CommandSource is ImageButton)
        {
            row = ((e.CommandSource as ImageButton).NamingContainer) as GridViewRow;
        }

        int id = 0;

        int.TryParse(e.CommandArgument.ToString(), out id);

        switch (e.CommandName)
        {
            case "sil":
                Service.Sil(id);
                break;
            case "guncelle":
                // textbox'ı yakalamak için
                TextBox txtKategoriAd = myGrid.Rows[row.RowIndex].FindControl("txtKategoriAd") as TextBox;
                var kategori = new Categories { CategoryID = id, CategoryName = txtKategoriAd.Text };
                Service.Update(kategori);
                // Edit moddan çıkılmalı..
                myGrid.EditIndex = -1;
                break;
            case "vazgec":
                myGrid.EditIndex = -1;
                break;
            case "link":
                int categoryId = Convert.ToInt32(e.CommandArgument);
                myGrid2.DataSource = Service.GetProductsByCategories(categoryId);
                myGrid2.DataBind();
                break;
        }

        Doldur();
    }
    protected void myGrid_RowEditing(object sender, GridViewEditEventArgs e)
    {
        myGrid.EditIndex = e.NewEditIndex;
        Doldur();
    }

    private void Doldur2()
    {
        WebHelper.FillGridView(myGrid2, Service.GetProductsByCategories(??????));
    }

    protected void myGrid2_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        GridViewRow row = null;

        if (e.CommandSource is ImageButton)
        {
            row = ((e.CommandSource as ImageButton).NamingContainer) as GridViewRow;
        }

        int id = 0;

        int.TryParse(e.CommandArgument.ToString(), out id);

        switch (e.CommandName)
        {
            case "sil2":
                Service.Sil2(id);
                break;
            case "guncelle2":
                // textbox'ı yakalamak için
                TextBox txtKategoriAd2 = myGrid2.Rows[row.RowIndex].FindControl("txtKategoriAd2") as TextBox;
                var product = new Products { ProductID = id, ProductName = txtKategoriAd2.Text };
                Service.Update2(product);
                // Edit moddan çıkılmalı..
                myGrid2.EditIndex = -1;
                break;
            case "vazgec2":
                myGrid2.EditIndex = -1;
                break;
        }

        Doldur2();
    }
    protected void myGrid2_RowEditing(object sender, GridViewEditEventArgs e)
    {
        myGrid2.EditIndex = e.NewEditIndex;
        Doldur2();
    }
}
4

1 に答える 1

1

2 番目のグリッドのカテゴリ ID を保存する必要があります。

case "link":
                int categoryId = Convert.ToInt32(e.CommandArgument);
                Session["CategoryID"] = categoryId;
                myGrid2.DataSource = Service.GetProductsByCategories(categoryId);
                myGrid2.DataBind();
                break;

 private void Doldur2()
    {
        int catid = (int)Session["CategoryID"];
        WebHelper.FillGridView(myGrid2, Service.GetProductsByCategories(catid));
    }

それで全部です。

于 2013-03-13T23:23:19.747 に答える