データベース内のフィールドの 1 つに、数百または数千の単語が含まれている場合があります。グリッドビューの編集ボタンをアクション イベントとして機能させる方法を知りたいのですが、残りの自動機能もオフにします。私が言いたいのは、テーブル内の実際のセルを編集可能にしたくないということと、更新ボタンとキャンセル ボタンを表示させたくないということです。
グリッドビューは次のとおりです。
<asp:Panel ID="updatePanel" runat="server" Visible="false">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource4"
AllowPaging="True" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None"
BorderWidth="1px" CellPadding="3" CellSpacing="2" OnRowDeleting="GridView1_OnRowDeleting" OnRowEditing="GridView1_OnRowEditing"
DataKeyNames="PK_DailyTaskHours, PK_NonScrumStory">
<Columns>
<asp:BoundField DataField="Catagory" HeaderText="Support Catagory" SortExpression="Catagory" />
<asp:BoundField DataField="AppName" HeaderText="Application Name" SortExpression="IncidentNumber" />
<asp:BoundField DataField="IncidentNumber" HeaderText="Incident #" SortExpression="IncidentNumber" />
<asp:BoundField DataField="Hours" HeaderText="Hours" SortExpression="Hours" />
<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
<asp:BoundField DataField="CreatedDate" HeaderText="Created Date" SortExpression="CreatedDate" />
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FFF1D4" />
<SortedAscendingHeaderStyle BackColor="#B95C30" />
<SortedDescendingCellStyle BackColor="#F1E5CE" />
<SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="SELECT [NonScrumStory].[IncidentNumber], [NonScrumStory].[Description], [NonScrumStory].[CreatedDate],
[DailyTaskHours].[Hours], [Application].[AppName], [SupportCatagory].[Catagory], [DailyTaskHours].[PK_DailyTaskHours],
[NonScrumStory].[PK_NonScrumStory] FROM [NonScrumStory], [DailyTaskHours], [Application], [SupportCatagory] WHERE
([NonScrumStory].[UserId] = @userIdSelected) AND ([NonScrumStory].[PK_NonScrumStory] = [DailyTaskHours].[NonScrumStoryId])
AND ([NonScrumStory].[CatagoryId] = [SupportCatagory].[PK_SupportCatagory]) AND
([NonScrumStory].[ApplicationId] = [Application].[PK_Application]) AND ([NonScrumStory].[Deleted] != 1)"
DeleteCommand="UPDATE [NonScrumStory] SET [Deleted] = 1 WHERE (PK_NonScrumStory = @nonScrumStoryPK);
UPDATE [DailyTaskHours] SET [Deleted] = 1 WHERE (PK_DailyTaskHours = @dailyTaskHoursPK); ">
<SelectParameters>
<asp:QueryStringParameter Name="userIdSelected" Type="String" />
</SelectParameters>
<DeleteParameters>
<asp:QueryStringParameter Name="dailyTaskHoursPK" Type="String" />
<asp:QueryStringParameter Name="nonScrumStoryPK" Type="String" />
</DeleteParameters>
</asp:SqlDataSource>
さらに、アクションイベントが機能しています:
protected virtual void GridView1_OnRowEditing(object sender, GridViewEditEventArgs e)
{
}
そして、使用ReadOnly="false"
するとセルが編集可能にならなくなることを私は知っています。更新/キャンセルを取り除くにはどうすればよいですか? ユーザーが変更を確認できないように、すぐにキャンセルを実行することはできますか? ユーザーが編集を押すと、グリッドビューを表示しているパネルが非表示になり、編集オプションを含む新しいパネルが表示されます。