我有一個gridview顯示模板字段內的數據,它需要更多關於記錄的信息才能通過點擊鏈接按鈕來顯示。現在,我通過在gridview上調用edit命令來顯示信息的「細節」鏈接,以便它切換到EditItemTemplate。在EditItemTemplate中,我有一個用於取消的鏈接按鈕,然後是一個編輯按鈕,單擊它時,顯示更新按鈕和更新命令,但我需要它遍歷該行並將EditItemTemplate中的所有文本框設置爲ReadOnly = false以允許在選擇更新命令之前編輯它們。下面是代碼的摘要:在asp中使用EditItemTemplate文本框迭代:GridView
<ItemTemplate>
*basic information displayed*
<asp:LinkButton runat="server" CommandName="Edit" Text="Details"></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
*A bunch of readonly textboxes that display the extra information*
<asp:LinkButton runat="server" CommandName="Update" Text="Update" Visible="false"></asp:LinkButton>
<asp:LinkButton runat="server" Text="Edit" OnClick="editButton_Click"></asp:LinkButton>
</EditItemTemplate>
而對於這使得該按鈕出現的方式我想該事件的代碼,但我不知道如何通過EditItemTemplate中迭代,或者即使這是什麼我應該做的:
Protected Sub editButton_Click(sender As Object, e As EventArgs)
sender.FindControl("updateButton").Visible = True
sender.FindControl("editbutton").Visible = False
For Each t In ?EditItemTemplate?
Dim textbox = TryCast(t, System.Web.UI.WebControls.TextBox)
If textbox IsNot Nothing Then
textbox.ReadOnly = False
End If
Next
End Sub
所以我的問題是,無論是如何得到這個工作,或者我應該如何建立GridViewCommands否則
也許利用GridView提供的默認機制會更有意義。爲每個需要可編輯的列創建項目模板和編輯模板,然後使用「編輯」按鈕觸發「編輯」命令。這樣GridView中的相應行將使用編輯模板呈現每一列,這正是你所需要的。 – Andrei