我的作業是在ASP.NET中,我的教授希望我刪除gridview
中不使用SqlDataSource
的行。這可能嗎?因爲我認爲我的教授想要讓我失望,只是因爲我問了一個問題而他無法回答。如何在c#中沒有SqlDataSource的情況下在gridview中刪除一行?
回答
我你只是想刪除的行找到行索引和簡單的調用方法
datagridview.rows.removeat(rowindex);
GridView!= DataGridView – Magnus 2011-06-03 09:38:56
是的,你可以從GridView控件不使用的SqlDataSource刪除行。你所要做的就是刪除源代碼行(無論源代碼是什麼...),這是綁定到你的gridview。對於這個問題
繼承人的示例代碼:
public static DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
dt = new DataTable();
DataRow dr = null;
dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
dt.Columns.Add(new DataColumn("Column1", typeof(string)));
dt.Columns.Add(new DataColumn("Column2", typeof(string)));
dr = dt.NewRow();
dr["RowNumber"] = 1;
dr["Column1"] = "column1cell";
dr["Column2"] = "column2cell";
dt.Rows.Add(dr);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
if (dt.Rows.Count > 0)
{
dt.Rows.RemoveAt(0);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
不是最好的代碼,但如果你的教授要你做,你在這裏。 希望這可以幫助你...
有一個更好的方法,而不必重新綁定Gridview
和它強制呼叫SqlDataSource
。使用ViewState
。
加載Gridview時,將「數據」保存到ViewState變量中。
即:
//ok let's load the gridview with data as normal and display it
//'sdsClasses' is the SQL data source
gvStudents.DataSourceID = "sdsClasses";
gvStudents.DataSource = null; // Null out the source, as we have a SourceID instead
gvStudents.DataBind(); //load the gridview and display it
//save the data in a viewstate for later use
DataView dvClasses = (DataView)sdsClasses.Select(DataSourceSelectArguments.Empty);
DataTable dt = new DataTable();
if (dv != null)
{
dt = dvClasses.ToTable();
ViewState["gv"] = dt;
}
所以,現在當過GridView的負載,你必須在內存用作ViewState的數據的。
如果您需要刪除一行,做到這一點...
在我的例子,我使用一個搜索功能來尋找我要基於從下拉列表控制SelectValue刪除,該行。你必須使用類似的東西來確定你想要刪除的行。如果您想刪除最後一行,請在DataTable上逐行執行ForEach,直到到達最後一行並刪除!
//Load the dataview that was already saved in the ViewState
DataTable dt = (DataTable)ViewState["gv"];
//find the student in the datatable, row by row
bool found = false;
bool wsAtt = false; //flag to indicate if the student is already in the roll or not saved yet (ie: sdsClasses recordset)
foreach (DataRow dr in dt.Rows)
{
//compare studentID in the datatable with the selected value of the student to delete
//check that the field has TECNQ studentIDs otherwise use the 2nd cell in the row
if (dr[0].ToString().Contains("NQ"))
found = (found || dr[0].ToString() == ddlRemoveStudents.SelectedValue);
else
{
found = (found || dr[1].ToString() == ddlRemoveStudents.SelectedValue);
wsAtt = true;
}
//he should!
if (found)
{
//remove the row to the datatable
dt.Rows.Remove(dr);
//Bind the grid view to the datatable and refresh
gvStudents.DataSource = dt;
gvStudents.DataSourceID = null; // Null out the id, we have a source
gvStudents.DataBind();
//update the viewstate with the new amount of rows
ViewState["gv"] = dt;
}
}
所以你可以看到,使用ViewState的作爲替代的SqlDataSource的,你能再次操縱GridView控件如你所願,從不調用原始的SqlDataSource,除了在第一時間獲取數據。
並告訴你的教授他是一頭傲慢的豬。
- 1. 如何在不使用SqlDataSource,ObjectDataSource等的情況下刪除gridview和底層數據源中的一行
- 2. 如何在網址中沒有id的情況下刪除一行?
- 3. 如何在沒有datarowview的情況下更新gridview行?
- 4. 如何在沒有約束檢查的情況下刪除表
- 5. Git行在沒有通知的情況下被刪除
- 6. 在沒有constarint的情況下刪除行
- 7. 如何在沒有「刪除」操作的情況下刪除Object的屬性
- 8. 在沒有strtok的情況下在C中進行令牌化()
- 9. 如何在沒有Cython的情況下在Python中運行sklearn?
- 10. 如何在沒有CRLF的情況下在C#中編寫所有行
- 11. 如何在沒有ConcurrentModificationException的情況下刪除hashmap中的多個映射?
- 12. 如何在沒有內容的情況下刪除NicEdit中的空格?
- 13. ASP.NET如何在沒有GridView的情況下顯示數據
- 14. 在沒有頁面刷新的情況下刪除jquery中的行
- 15. 如何在沒有事務的情況下運行更新/刪除操作jpa
- 16. 如何在沒有導航器的情況下刪除和插入行
- 17. 在沒有按鈕的情況下執行頁面加載後執行sqldatasource
- 18. 在沒有DataBind的情況下向GridView添加新行
- 19. 如何在條件滿足的情況下刪除MySQL中的一行
- 20. 如何在沒有按下c#鍵的情況下按下鍵?
- 21. 在沒有複選框的情況下在gridview中選擇多行
- 22. 在C#2008中刪除Gridview的行
- 23. RecycleView:如何在沒有滾動的情況下轉到一行
- 24. 如何在沒有指定行的情況下選擇一列?
- 25. 在沒有任何節點的情況下刪除neo4j中的屬性
- 26. 如何在沒有SqlDataSource的情況下將mysql連接到DevExpress ASPxScheduler
- 27. 在沒有提交的情況下刪除mercurial上的分支
- 28. 如何在某些情況下使用EF執行刪除行?
- 29. 如何在不從FragmentManager中刪除DialogFragment的情況下
- 30. 在沒有GUI的情況下從nexus刪除工件
NitinJS向您展示了一種解決方案,實際上您可以在沒有任何回傳的情況下在網格視圖中刪除一行:) – Maidot 2011-06-03 09:22:42
您使用的是什麼類型的數據源? – Magnus 2011-06-03 09:39:42
男孩!你的教授確實問了一個棘手的問題。 :)順便說一句,你問你的教授? – naveen 2011-06-03 10:18:58