2015-05-18 36 views
0

我正在研究關於學生評分系統的項目。我stucked,我將在下面顯示了這一點:使用c#winform和sql server中的按鈕添加行到gridview

STUDENT ID : 12345 
STUDENT NAME : ALEXIA 

LESSONS :   GRADE 1  GRADE 2 AVERAGE LIMIT RESULT 
PHYSICS    40   80   60  50  PASS 
CALCULUS   20   10   15  50  FAIL 
Add new lesson 

New list should be ; (assume we add Sport as new lesson on the list) 

    LESSONS :   GRADE 1  GRADE 2 AVERAGE LIMIT RESULT 
    PHYSICS    40   80   60  50  PASS 
    CALCULUS   20   10   15  50  FAIL 
    SPORT    100   100  100  50  PASS 
    add new lesson (line) 

我將這些數據保存到數據庫,然後列出新形式的所有數據;

STUDENT NAME : ALEXIA 

    LESSONS   GRADE   RESULT 
    PHYSICS   60    PASS 
    CALCULUS   15    FAIL 
    SPORT   100    PASS 

我怎麼能在這裏開發這樣的結構。我可能需要使用網格或列表

通知書纔會真正理解

+0

沒有關係。 'ListView'和'DataGridView'都可以用於你的案例 – Fabio

+0

你能否給我一個代碼示例 –

+1

Google會爲你提供一個非常大的網格和列表示例。我們不應該爲你做你的研究。 – cdkMoose

回答

-1

我不知道我這是你假裝什麼,但讓我們看看..

什麼,我能理解你想要的東西,像這

STUDENT NAME : ALEXIA 

    LESSONS   GRADE   RESULT 
    PHYSICS   60    PASS 
    CALCULUS   15    FAIL 
    SPORT   100    PASS 

所以你basicly可以創建一個HTML表格結構和使用

<%#(的DataBinder.Eval(集裝箱, 「DataItem.username」))%> 從DB綁定您的項目

現在回答你可能提出的問題:

但我想3,4或這樣的100個結構取決於我從db獲得的stunde數量。

簡單的伴侶,把你的結構放在一個轉發器中,只是把數據源分配給轉發器,你將根據數據得到結構。


但我沒有物理,微積分或運動,我可以添加更多。

只需使用另一個repater內轉發像這樣的東西

<td> <%#(DataBinder.Eval(Container, "DataItem.Title")) %></td><td> <%#(DataBinder.Eval(Container, "DataItem.Grade")) %></td><td> <%#(DataBinder.Eval(Container, "DataItem.Result")) %></td> 

* PS:記得我用的都是剛例如dataiitems ...

問題訪問內部中繼轉發?使用這樣的事情

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    var data = ((MyClass)e.Item.DataItem).Subcategories; 
    var repeater2 = (Repeater)e.Item.FindControl("Repeater2"); 
    repeater2.DataSource = data; 
    repeater2.DataBind(); 
} 

不知道,如果它是這就是你要尋找的,但希望它有助於以任何方式。祝你好運

+0

你回答「ASP.NET」。問題是關於'Winforms' – Fabio

+0

@Romero它是winforms不是ASP.NET。如果你有Winforms與我分享的解決方案 –

0

如果你正在尋找的東西如添加新行通過PRESSION到GridView控件按鈕和一些文本框或東西試試這個

DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone(); 
row.Cells["LESSONS"].Value = yourtextbox.text; 
row.Cells["Grade"].Value = yourtextbox1.text; 
row.Cells["Result"].Value = yourtextbox1.text; 
yourDataGridView.Rows.Add(row); 
0

1那麼簡單想小姐讀書,現在我道歉看到的是在winforms中,右鍵單擊解決方案資源管理器中的項目,然後選擇「添加新用戶控件」。這實際上可以讓你從多種不同類型的對象中選擇添加,但用戶控件是你想要的。當你添加用戶控件時,它應該爲你提供一個新的設計器窗口,並帶有一個獨立的面板,你可以在其中放置常規控件。如果你回到你的表單,你會在工具箱中看到一個新的部分,其中包含你的新控件。您可以像使用其他任何控件一樣使用它,包括動態創建並將其添加到窗體上的flowlayout面板。

然後在數據網格例如作爲簡單的添加行,因爲這

public DataTable GetResultsTable() 
{ 
    DataTable table = new DataTable(); 
    table.Columns.Add("Name".ToString()); 
    table.Columns.Add("Color".ToString()); 
    DataRow dr = table.NewRow(); 
    dr["Lesson"] = "Programing"; 
    dr["Calculus"] = "99"; 
    dr["result"] = "pass"; 
    table.Rows.Add(dr); 
    return table; 
} 
public void gridview() 
{   
    datagridview1.DataSource = GetResultsTable(); 
} 

希望這一次我幫你以正確的方式去配合,運氣好的話

相關問題