2009-08-19 16 views
1

.aspx的形式:下面使用隱藏值從linq創建多個記錄的刪除/編輯按鈕?

<asp:Table ID="viewV" runat="server"> 
    <asp:TableRow> 
    <asp:TableHeaderCell>Name</asp:TableHeaderCell> 
    <asp:TableHeaderCell>Type</asp:TableHeaderCell> 
    </asp:TableRow>  
</asp:Table> 

代碼:

vRepository getV = new vRepository(); 

var viewAllV = getV.GetV(); 

foreach (tblV singleV in viewAllV) 
{ 
    TableRow tr = new TableRow(); 

    // Create four new cells for each row within the database 

    TableCell vName = new TableCell(); 
    TableCell vType = new TableCell(); 

    // Attached values to each of these cells 

    vName.Text = singleV.vName; 
    vType.Text = singleV.tblVType.vName; 

    // Add the cells to the table 

    tr.Cells.Add(vName); 
    tr.Cells.Add(vType); 

    // Add the row to the table 

    viewV.Rows.Add(tr); 
} 

我目前填充一個ASP:使用LINQ表,這是工作的罰款。

public IQueryable<tblV> GetV() 
{ 
    return (from getAllV in dc.tblV 
      where getAllV.deleted != 1 
      orderby getAllV.vName 
      select getAllV).DefaultIfEmpty(); 
} 

我試圖在GridView /的ListView/DetailsView控件,但似乎無法訪問getv時,我只能訪問實際的表。

我想添加一個編輯/刪除按鈕,每一行的末尾,這樣用戶可以選擇他們想要編輯/刪除該行。

一旦用戶選擇了編輯/刪除按鈕,它應該訪問不同的視圖(一個用於編輯,一個用於添加 - 在同一個aspx文件中)。

例如:

Name Type 

Example 1 Type 1 Edit Button Delete Button 

Example 2 Type 1 Edit Button Delete Button 

我希望能夠選擇Edit按鈕「例1」。那麼這應該:

  1. 帶我到「編輯視圖」,
  2. 自動填充用正確的信息使用唯一的ID新信息的兩個文本字段,
  3. 更新行(數據庫中)(PK )。

我怎麼會產生多個編輯/刪除按鈕,它以某種方式保存該行的唯一ID?

我認爲這將是這樣的:

TableCell vEdit = new TableCell(); 
vEdit.Button = singleV.vID; 
tr.Cells.Add(vEdit); 
+0

你不想使用gridview或listview的任何特定原因?他們會真正爲你簡化這一點。 – womp 2009-08-19 15:30:38

+0

我希望能夠學習如何「硬編碼」,而不是拖拽,如果出現問題,我想理解代碼。另外我需要編輯/刪除按鈕轉到另一個視圖,而不是創建一個內聯「編輯」模式。 – ClareBear 2009-08-19 15:44:35

+0

你應該這樣做,而不是'硬道路''正確'的方式。在其他地方會有很多時間讓複雜的數據混淆。嘗試使用GridView/DetailView進行非內聯編輯模式。最壞的情況是,使用Repeater而不是Table。 – ADB 2009-08-19 17:00:58

回答

1

如果你真的想「硬編碼」,請使用ASP.NET MVC。否則,你真的應該使用某種數據綁定控件。

這就是說,如果你堅持這種方法,你可能可以做這樣的事情:

Button editButton = new Button(); 
editButton.Text = "Edit"; 
editButton.CommandArgument = singleV.vID.ToString(); 
editButton.CommandName = "Edit"; 
editButton.OnCommand += new CommandEventHandler(EditButton_Command); 

TableCell vEdit = new TableCell(); 
vEdit.Controls.Add(editButton); 

tr.Cells.Add(vEdit); 

然後從你的事件處理程序的CommandEventArgs可以檢索參數,並相應地更改您的視圖。

+0

對不起,如果我沒有說清楚自己,我確實想要最好的解決方案,但是我努力調整數據綁定控件以適應我的要求。我需要訪問GetV(當前位於一個類中)。在GetV中我正在使用LINQ。當我嘗試附加一個數據源時,它只允許我訪問實際的表格而不是GetV。我也想編輯/刪除按鈕轉到另一種觀點認爲,同時還包含unquie ID。如果意見是最好的解決方案,任何人都可以推薦這一步的指導提供了一步的任何文件,對我的要求是什麼? – ClareBear 2009-08-20 10:17:44

相關問題