FormViewDeleteEventArgs.Values 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得一個非鍵欄位名稱/值對的字典,供項目刪除。
public:
property System::Collections::Specialized::IOrderedDictionary ^ Values { System::Collections::Specialized::IOrderedDictionary ^ get(); };
public System.Collections.Specialized.IOrderedDictionary Values { get; }
member this.Values : System.Collections.Specialized.IOrderedDictionary
Public ReadOnly Property Values As IOrderedDictionary
屬性值
一個 OrderedDictionary 包含非鍵欄位名稱/值對的項目要刪除的那個。
範例
以下範例示範如何利用該 Values 屬性存取被刪除記錄中非鍵欄位的值。
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void EmployeeFormView_ItemDeleting(Object sender, FormViewDeleteEventArgs e)
{
// Get the employee ID, name, and job title from the Keys and Values
// properties.
String keyValue = e.Keys["EmployeeID"].ToString();
String employeeName = e.Values["FirstName"].ToString() +
" " + e.Values["LastName"].ToString();
String title = e.Values["Title"].ToString();
// Cancel the delete operation if the user attempts to
// delete a protected record. In this example, records for
// employees with a "Sales Manager" job title are protected.
if (title.Equals("Sales Manager"))
{
e.Cancel = true;
MessageLabel.Text = "You cannot delete record " +
e.RowIndex.ToString() + ". " + employeeName +
" (Employee Number " + keyValue.ToString() +
") is protected.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FormViewDeleteEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>FormViewDeleteEventArgs Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
onitemdeleting="EmployeeFormView_ItemDeleting"
runat="server">
<itemtemplate>
<table>
<tr>
<td>
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td>
<asp:label id="FirstNameLabel"
text='<%#Bind("FirstName")%>'
font-bold="true"
runat="server"/>
<asp:label id="LastNameLabel"
text='<%#Bind("LastName")%>'
font-bold="true"
runat="server"/>
<br/>
<asp:label id="TitleLabel"
text='<%#Bind("Title")%>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:button id="DeleteButton"
text="Delete Record"
commandname="Delete"
runat="server" />
</td>
</tr>
</table>
</itemtemplate>
</asp:formview>
<asp:label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
deletecommand="Delete [Employees] Where [EmployeeID]=@EmployeeID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub EmployeeFormView_ItemDeleting(ByVal sender As Object, ByVal e As FormViewDeleteEventArgs)
' Get the employee ID, name, and job title from the Keys and Values
' properties.
Dim keyValue As String = e.Keys("EmployeeID").ToString()
Dim employeeName As String = e.Values("FirstName").ToString() & _
" " & e.Values("LastName").ToString()
Dim title As String = e.Values("Title").ToString()
' Cancel the delete operation if the user attempts to
' delete a protected record. In this example, records for
' employees with a "Sales Manager" job title are protected.
If Title.Equals("Sales Manager") Then
e.Cancel = True
MessageLabel.Text = "You cannot delete record " & _
e.RowIndex.ToString() & ". " & employeeName & _
" (Employee Number " & keyValue.ToString() & _
") is protected."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FormViewDeleteEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>FormViewDeleteEventArgs Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
onitemdeleting="EmployeeFormView_ItemDeleting"
runat="server">
<itemtemplate>
<table>
<tr>
<td>
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td>
<asp:label id="FirstNameLabel"
text='<%#Bind("FirstName")%>'
font-bold="true"
runat="server"/>
<asp:label id="LastNameLabel"
text='<%#Bind("LastName")%>'
font-bold="true"
runat="server"/>
<br/>
<asp:label id="TitleLabel"
text='<%#Bind("Title")%>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:button id="DeleteButton"
text="Delete Record"
commandname="Delete"
runat="server" />
</td>
</tr>
</table>
</itemtemplate>
</asp:formview>
<asp:label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
deletecommand="Delete [Employees] Where [EmployeeID]=@EmployeeID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
備註
使用該 Values 屬性來存取非鍵欄位的值,以取得該紀錄被刪除的紀錄。 例如,你可以用這些值在刪除紀錄前驗證,或是記錄已刪除紀錄。
備註
此屬性不包含金鑰欄位。 要存取關鍵欄位的名稱/值對值值,請使用屬性 Keys 。
該 Values 屬性會回傳一個 OrderedDictionary 實作介面的 System.Collections.Specialized.IOrderedDictionary 物件。 該 OrderedDictionary 物件包含 System.Collections.DictionaryEntry 代表非鍵欄位的物件。 要存取欄位名稱,請使用 Keys 物件 OrderedDictionary 的屬性。 同樣地,你也可以透過屬性 Values 來存取欄位的值。
備註
作為捷徑,你也可以使用物件的 OrderedDictionary 索引器來存取欄位的值。 使用索引器的優點是它能直接回傳欄位值。 依賴欄位順序的資料來源控制(例如 AccessDataSource)只能透過索引存取欄位值。
集合中的 Values 值不會傳遞給資料來源控制。 如果資料來源需要這些值,你應該把這些值加入 Keys 集合。
和Values屬性Keys是唯讀的;不過你可以修改物件的OrderedDictionary欄位值。 如果你更改了鍵值和非鍵值欄位,對應的紀錄會從資料來源中刪除。