2017-03-16 12 views
0

管理者が新しいgridviewを削除または追加できるWebサイトがあります。たとえば、giordano製品のグリッドビューを現在持っていて、そのブランドをbossini製品に変更したい場合などです。管理者が編集ボタンをクリックすると、giordano製品全体のグリッドビューとコードが削除されます。すでに更新モードになっていて、ブランド名を「bossini」に変更して更新をクリックした場合、新しいgridviewとbossini製品のコードを追加する必要があります。gridview(asp.net)で更新モードに入る前に全ページをリフレッシュするには?

ここに問題があります。編集ボタンをクリックすると、グリッドビューコード全体が削除されますが、グリッドビュー自体はウェブサイトに表示されます。私は最終的に私はページを更新する必要があることを知っているが、私はまだ最良の方法を知らない。私はGuitarBrandsGridView_RowEditingでResponse.Redirect( "urls")を試しましたが、動作していないので例外が出ています。 GuitarBrandsGridView_RowDeleting thoで動作します。私はちょうどそれが私の編集ボタンのために働くかもしれないと仮定しましたが、それは失敗しました。

私の目標は、グリッドビューの編集ボタンをクリックすると、ウェブページ全体が更新され、更新モードに移行することです。これが理にかなってほしい。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) { 
     bindgridviewguitarbrands(); 
     BindGridViewDataList.GetItemsLoad(); 
    } 
} 

//Start of Gridview Code for Guitar Brands 
private void bindgridviewguitarbrands() 
{ 
    con1.Open(); 
    cmd1.CommandText = "SELECT * FROM [guitarBrands]"; 
    cmd1.Connection = con1; 
    SqlDataAdapter da1 = new SqlDataAdapter(cmd1); 
    da1.Fill(ds1); 
    con1.Close(); 
    GuitarBrandsGridView.DataBind(); 

} 

protected void GuitarBrandsGridView_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     string name = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name")); 
     Button button = (Button)e.Row.FindControl("GuitarBrandsGridViewBtnDelete"); 
     button.Attributes.Add("onclick", "JavaScript:return ConfirmationBox('" + name + "')"); 
    } 
} 

protected void GuitarBrandsGridView_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{ 

    int id = Convert.ToInt32(GuitarBrandsGridView.DataKeys[e.RowIndex].Value.ToString()); 
    Label name = (Label)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("lblName"); 

    RemoveCodeToGuitarFile.RemoveAddGuitarClass(name.Text); 
    RemoveCodeToGuitarFile.RemoveConnectionClassGuitarItems(name.Text); 
    RemoveCodeToGuitarFile.RemoveOverviewGuitarDataASPX(name.Text); 
    RemoveCodeToGuitarFile.RemoveOverviewGuitarDataCode(name.Text); 
    File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx"); 
    File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx.cs"); 
    ConnectionClassGuitarBrands.RemoveGuitarBrandsDatabase(name.Text); 

    con1.Open(); 
    cmd1.CommandText = "DELETE FROM [guitarBrands] WHERE id=" + id; 
    cmd1.Connection = con1; 
    int a = cmd1.ExecuteNonQuery(); 

    con1.Close(); 

    if (a > 0) { 
     bindgridviewguitarbrands(); 
    } 

    Response.Redirect("~/Pages/OverviewGuitarData.aspx"); 

} 

protected void GuitarBrandsGridView_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    GuitarBrandsGridView.EditIndex = e.NewEditIndex; 
    string id = GuitarBrandsGridView.DataKeys[e.NewEditIndex].Value.ToString(); 
    Label name = (Label)GuitarBrandsGridView.Rows[e.NewEditIndex].FindControl("lblName"); 

    RemoveCodeToGuitarFile.RemoveAddGuitarClass(name.Text); 
    RemoveCodeToGuitarFile.RemoveConnectionClassGuitarItems(name.Text); 
    RemoveCodeToGuitarFile.RemoveOverviewGuitarDataASPX(name.Text); 
    RemoveCodeToGuitarFile.RemoveOverviewGuitarDataCode(name.Text); 
    File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx"); 
    File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx.cs"); 
    ConnectionClassGuitarBrands.RemoveGuitarBrandsDatabase(name.Text);  

    bindgridviewguitarbrands(); 
    Response.Redirect("~/Pages/OverviewGuitarData.aspx");//this one is not working 
} 
// row update event 
protected void GuitarBrandsGridView_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    // find student id of edit row 
    string id = GuitarBrandsGridView.DataKeys[e.RowIndex].Value.ToString(); 
    // find updated values for update 
    TextBox type = (TextBox)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("txtType"); 
    TextBox name = (TextBox)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("txtName"); 
    TextBox image = (TextBox)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("txtImage"); 


    cmd1 = new SqlCommand("UPDATE [guitarBrands] SET Type = '" + type.Text + "', Name = '" + name.Text + "', Image = '" + image.Text + "' WHERE ID = " + id, con1); 
    con1.Open(); 
    cmd1.ExecuteNonQuery(); 
    con1.Close(); 

    int ID = Convert.ToInt32(id); 
    ConnectionClassGuitarBrands.CreateGuitarBrandsDatabase(name.Text); 
    AddCodeToGuitarFile.AddGuitarClassCode(name.Text, ID); 
    AddCodeToGuitarFile.AddConnectionClassGuitarItems(name.Text); 
    AddCodeToGuitarFile.AddOverviewGuitarDataASPX(name.Text, ID); 
    AddCodeToGuitarFile.AddOverviewGuitarDataASPXCode(name.Text); 
    AddASPXAndCSFileForGuitarBrands.AddFile(name.Text, ID); 

    GuitarBrandsGridView.EditIndex = -1; 
    bindgridviewguitarbrands(); 

} 
// cancel row edit event 
protected void GuitarBrandsGridView_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
{ 
    string id = GuitarBrandsGridView.DataKeys[e.RowIndex].Value.ToString(); 
    TextBox name = (TextBox)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("txtName"); 

    int ID = Convert.ToInt32(id); 
    ConnectionClassGuitarBrands.CreateGuitarBrandsDatabase(name.Text); 
    AddCodeToGuitarFile.AddGuitarClassCode(name.Text, ID); 
    AddCodeToGuitarFile.AddConnectionClassGuitarItems(name.Text); 
    AddCodeToGuitarFile.AddOverviewGuitarDataASPX(name.Text, ID); 
    AddCodeToGuitarFile.AddOverviewGuitarDataASPXCode(name.Text); 
    AddASPXAndCSFileForGuitarBrands.AddFile(name.Text,ID); 

    GuitarBrandsGridView.EditIndex = -1; 
    bindgridviewguitarbrands(); 
} 

答えて

0

あなたが全体のページ

GuitarBrandsGridView.DataSource = ds1 
GuitarBrandsGridView.DataBind(); 
をリフレッシュする必要はありません

、新しいデータ、あなたのページは、あなたがそれをするページのフルパスを与える必要がリフレッシュしたい

+0

私はこれを挿入しますか? )(Response.Endのを実行して、私が言ったように – BrunoEarth

+0

メソッドbindgridviewguitarbrandsは() –

+0

私は私のGridViewの – BrunoEarth

0
Response.Redirect("http://localhost:14999/Home/Index"); 

を更新しますそのページをリロードします。 私はそれが私のために働いてcozを動作することを願って

+0

はい、私はこれを試しましたが、私の望む結果には達しませんでした。編集ボタンをクリックすると、グリッドビューのコードが削除され、さらに更新モードに移行せずに編集ボタンに戻ります。その後、もう一度[編集]ボタンをクリックすると、以前に削除されたコードが存在しなくなり、例外エラーが発生するため、例外が発生します。 – BrunoEarth

+0

は、GuitarBrandsGridView_RowEditingでresponse.redirectを適用するときの主な問題です。あなたがresponse.redirectを持っていれば更新モードには合格しません。 – BrunoEarth

関連する問題