我缺少的東西在這裏...ASP.net的ListView訪問控制在ItemUpdating事件
我需要訪問該離開編輯模式下的項目的控件的值,從而發射ItemUpdating。
我發現如何獲得關鍵值,所以我知道我必須更新數據庫中的哪條記錄。問題是我似乎無法訪問編輯行上控件的值。
EditTemplate包含一些複選框,下拉框和文本框。我需要訪問這些值,以便我可以更新記錄。
查看eventargs時,什麼也沒有顯示。
我想我忽略了一些至關重要的事情,任何幫助都會很方便。
我缺少的東西在這裏...ASP.net的ListView訪問控制在ItemUpdating事件
我需要訪問該離開編輯模式下的項目的控件的值,從而發射ItemUpdating。
我發現如何獲得關鍵值,所以我知道我必須更新數據庫中的哪條記錄。問題是我似乎無法訪問編輯行上控件的值。
EditTemplate包含一些複選框,下拉框和文本框。我需要訪問這些值,以便我可以更新記錄。
查看eventargs時,什麼也沒有顯示。
我想我忽略了一些至關重要的事情,任何幫助都會很方便。
我有兩種方法可以這麼做。
第一種方法是使用支持更新命令的數據源並使用雙向綁定來更新值。以下剪切使用雙向綁定來填充名稱和學生字段,它也會爲您更新它們。
<EditItemTemplate>
<tr style="background-color: #FFCC66;color: #000080;">
<td>
<asp:Button ID="UpdateButton" runat="server" CommandName="Update"
Text="Update" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel"
Text="Cancel" />
</td>
<td>
<asp:TextBox ID="nameTextBox" runat="server" Text='<%# Bind("name") %>' />
</td>
<td>
<asp:TextBox ID="studentTextBox" runat="server" Text='<%# Bind("student") %>' />
</td>
</tr>
</EditItemTemplate>
如果您沒有使用支持此功能的數據源,您可以另外做一件事。 注意更新按鈕有一個叫做「更新」的命令。您可以使用它通過處理列表視圖ItemCommand事件來獲取所需的控制值。
protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "Update")
{
TextBox box = (TextBox)e.Item.FindControl("nameTextBox");
string name = box.Text;
}
}
只需調用find控件並將其傳遞給控件的ID,就可以在editied項中找到任何控件,並且不要忘記該控件。
希望這有助於
您還可以使用 「ListView.EditItem.FindControl(」 X 「)」 訪問控制直接。
Protected Sub ListView_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewUpdateEventArgs) Handles ListView.ItemUpdating
Dim DropDownListddl As DropDownList = ListView.EditItem.FindControl("DropDownListddl")
Lblwarning.Text = DropDownListddl.SelectedValue
End Sub
你可以發佈你的ItemUpdating事件處理程序嗎? – 2009-07-23 12:41:08
你使用什麼數據源?你有一個ObjectDataSource,你試圖寫一個更新方法? – 2009-07-23 12:43:26