2008-08-15 120 views
1

我來自一個Rails背景,並在ASP.NET項目(而不是ASP MVC)上做了一些工作。新手問題:爲記錄表製作自定義編輯器的最簡單方法是什麼?在ASP.NET中自定義編輯記錄的最佳方法?

例如:我有一大堆的數據行,並希望更改每個「類別」欄 - 也許一個下拉列表中,也許一個鏈接,也許用戶鍵入它

在Rails,我。 '迭代行來構建表,並且每行都有一個表單。表單會有一個輸入框或下拉菜單,並將數據提交給控制器,如「/ item/edit/15?category = foo」,其中15是itemID,新類別是「foo」。

我是新來的ASP.NET模型,我不知道「正確」的方式來做到這一點 - 只是最簡單的方法來取回新數據&保存。我會製作一個自定義控件並將其附加到每一行嗎?任何幫助讚賞。

回答

2

您現在可以真正作弊並且窺視.NET 3.5 SP1附帶的新動態數據。斯科特格思裏有一個博客條目demoing它會如何快速和容易在這裏爲你流:

http://weblogs.asp.net/scottgu/archive/2007/12/14/new-asp-net-dynamic-data-support.aspx

沒有得到那個最前沿,我會使用的XSD生成器生成一個強類型數據集相一致與表中的問題。這也會生成可用於執行所有CRUD語句的TableAdapter。

從那裏,它綁定到DataGrid和槓桿參與,所有的標準模板/事件,如EditIndex,SelectedIndex的,RowEditing,RowUpdated等

自1.0年初,我已經做了.NET的日子以及這種功能在每次更新框架時都變得越來越簡化。

編輯:我想給Matt Berseth博客點點頭。我一直在關注他的很多東西,現在很棒!

0

有幾個控件可以爲你做到這一點,根據它們的相對靈活性,具有不同程度的複雜性。

執行此操作的傳統方法是DataGrid控件,它爲您提供表格佈局。如果你想在外觀上具有更大的靈活性,DataList和ListView控件也具有對編輯,插入或刪除字段的內置支持。

檢查出Matt Berseth's blog的一些優秀的asp.net控件實例。

0

感謝您的答案傢伙。它看起來像定製DataGrid是要走的路。對於任何ASP.NET新手,這裏是我在做什麼

<asp:DataGrid ID="GridView1" runat="server" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:BoundColumn DataField="RuleID" Visible="False" HeaderText="RuleID"></asp:BoundColumn> 
     <asp:TemplateColumn HeaderText="Category"> 
     <ItemTemplate> 
      <!-- in case we want to display an image --> 
      <asp:Literal ID="litImage" runat="server"> 
      </asp:Literal> 
      <asp:DropDownList ID="categoryListDropdown" runat="server"></asp:DropDownList> 
     </ItemTemplate> 
     </asp:TemplateColumn> 

    </Columns> 
</asp:DataGrid> 

這將創建一個數據網格。然後,我們可以將其綁定到數據源(在我的情況數據表),並使用之類的東西

foreach (DataGridItem item in this.GridView1.Items) 
{ 
    DropDownList categoryListDropdown = ((DropDownList)item.FindControl("categoryListDropdown")); 
    categoryListDropdown.Items.AddRange(listItems.ToArray()); 
} 

來填充數據網格的INTIAL下拉。在這種情況下,您還可以訪問item.Cells [0] .text以獲取RuleID。

我自己的注意事項:ASP.NET模型執行代碼隱藏文件中的所有內容。在高層次上,您始終可以遍歷GridView1。獲取每一行的項目,以及item.findControl(「ControlID」)來查詢存儲在每個項目中的值,例如在按下「更新」按鈕之後。

相關問題