так как вы не можете использовать первые две строки моего фрагмента. Но, возможно, formview также использует DataKeys (я никогда не использую formview)

ridView имеет «Активный» флажок, чтобы указать, активна ли запись. Это просто флаг, битовое значение в базе данных.

Мне нужно ОБНОВИТЬ поля «ActivatedBy» и «DeactivationBy», когда пользователь проверяет или снимает флажок CheckBox (в режиме редактирования).

В настоящее время я обновляю поле «updatedBy» каждый раз, когда обновляется строка, заполняя его @UserName.

Но я не знаю, как программно обновлять поля ActivatedBy или DeactivationBy, только когда CheckBox отмечен или не отмечен соответственно. Это просто для записи, кто меняет флажок (@UserName является рабочим параметром).

Пожалуйста, предположите, что мне нужны подробности, изложенные для меня. Я делаю. ;-) Я только учусь C #, и GridViews моя проклятие. Спасибо!

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Admin.aspx.cs" Inherits="Admin" MaintainScrollPositionOnPostback="true" %>

<!DOCTYPE html>

<html>
<head runat="server">
    <title>Admin</title>
    <style>
        body {
            font-family:Arial;
            font-size:12px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="programid" DataSourceID="ITAAdminSqlDataSource" ForeColor="#333333" GridLines="None">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:CommandField ShowEditButton="True" ShowSelectButton="True" />
                <asp:BoundField DataField="programid" HeaderText="programid" InsertVisible="False" ReadOnly="True" SortExpression="programid" Visible="False" />
                <asp:BoundField DataField="OccGroup" HeaderText="Occ Group" SortExpression="OccGroup" />
                <asp:BoundField DataField="Provider" HeaderText="Provider" SortExpression="Provider" />
                <asp:BoundField DataField="Program" HeaderText="Program" SortExpression="Program" />
                <asp:BoundField DataField="OnetCode" HeaderText="Onet Code" SortExpression="OnetCode" />
                <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" />
                <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
                <asp:BoundField DataField="Telephone" HeaderText="Telephone" SortExpression="Telephone" >
                <ItemStyle Wrap="False" />
                </asp:BoundField>
                <asp:BoundField DataField="TuitionCosts" DataFormatString="{0:c}" HeaderText="Tuition" HtmlEncode="False" SortExpression="TuitionCosts" />
                <asp:BoundField DataField="OtherCosts" DataFormatString="{0:c}" HeaderText="Other Costs" HtmlEncode="False" SortExpression="OtherCosts" />
                <asp:BoundField DataField="SpecialConditions" HeaderText="Special Conditions" SortExpression="SpecialConditions" />
                <asp:BoundField DataField="Credential" HeaderText="Credential" SortExpression="Credential" />
                <asp:CheckBoxField DataField="Active" HeaderText="Active" SortExpression="Active" />
                <asp:BoundField DataField="DateEntered" DataFormatString="{0:d}" HeaderText="Date Entered" HtmlEncode="False" SortExpression="DateEntered" />
                <asp:BoundField DataField="EnteredBy" HeaderText="Entered By" SortExpression="EnteredBy" />
                <asp:BoundField DataField="DateUpdated" DataFormatString="{0:d}" HeaderText="Date Updated" HtmlEncode="False" SortExpression="DateUpdated" />
                <asp:BoundField DataField="UpdatedBy" HeaderText="Updated By" SortExpression="UpdatedBy" />
                <asp:BoundField DataField="DateActivated" DataFormatString="{0:d}" HeaderText="Date Activated" HtmlEncode="False" SortExpression="DateActivated" />
                <asp:BoundField DataField="ActivatedBy" HeaderText="Activated By" SortExpression="ActivatedBy" />
                <asp:BoundField DataField="DateDeactivated" DataFormatString="{0:d}" HeaderText="Date Deactivated" HtmlEncode="False" SortExpression="DateDeactivated" />
                <asp:BoundField DataField="DeactivatedBy" HeaderText="Deactivated By" SortExpression="DeactivatedBy" />
            </Columns>
            <EditRowStyle BackColor="Tomato" />
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#EFF3FB" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <SortedAscendingCellStyle BackColor="#F5F7FB" />
            <SortedAscendingHeaderStyle BackColor="#6D95E1" />
            <SortedDescendingCellStyle BackColor="#E9EBEF" />
            <SortedDescendingHeaderStyle BackColor="#4870BE" />
        </asp:GridView>
        <asp:SqlDataSource ID="ITAAdminSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ITAAdminConnectionString %>" 
            DeleteCommand="DELETE FROM [programs] WHERE [programid] = @programid" 
            InsertCommand="INSERT INTO [programs] ([OccGroup], [Provider], [Program], [OnetCode], [Address], [City], [Telephone], [TuitionCosts], [OtherCosts], [SpecialConditions], [Credential], [Active], [DateEntered], [EnteredBy], [DateUpdated], [UpdatedBy], [DateActivated], [ActivatedBy], [DateDeactivated], [DeactivatedBy]) VALUES (@OccGroup, @Provider, @Program, @OnetCode, @Address, @City, @Telephone, @TuitionCosts, @OtherCosts, @SpecialConditions, @Credential, @Active, @DateEntered, @EnteredBy, @DateUpdated, @UpdatedBy, @DateActivated, @ActivatedBy, @DateDeactivated, @DeactivatedBy)" 
            SelectCommand="SELECT [programid], [OccGroup], [Provider], [Program], [OnetCode], [Address], [City], [Telephone], [TuitionCosts], [OtherCosts], [SpecialConditions], [Credential], [Active], [DateEntered], [EnteredBy], [DateUpdated], [UpdatedBy], [DateActivated], [ActivatedBy], [DateDeactivated], [DeactivatedBy] FROM [programs] ORDER BY [Provider], [Program]" 
            UpdateCommand="UPDATE [programs] SET [OccGroup] = @OccGroup, [Provider] = @Provider, [Program] = @Program, [OnetCode] = @OnetCode, [Address] = @Address, [City] = @City, [Telephone] = @Telephone, [TuitionCosts] = @TuitionCosts, [OtherCosts] = @OtherCosts, [SpecialConditions] = @SpecialConditions, [Credential] = @Credential, [Active] = @Active, [DateEntered] = @DateEntered, [EnteredBy] = @EnteredBy, [DateUpdated] = GETDATE(), [UpdatedBy] = @UserName, [DateActivated] = @DateActivated, [ActivatedBy] = @ActivatedBy, [DateDeactivated] = @DateDeactivated, [DeactivatedBy] = @DeactivatedBy WHERE [programid] = @programid">
            <DeleteParameters>
                <asp:Parameter Name="programid" Type="Int32" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="OccGroup" Type="String" />
                <asp:Parameter Name="Provider" Type="String" />
                <asp:Parameter Name="Program" Type="String" />
                <asp:Parameter Name="OnetCode" Type="Int32" />
                <asp:Parameter Name="Address" Type="String" />
                <asp:Parameter Name="City" Type="String" />
                <asp:Parameter Name="Telephone" Type="String" />
                <asp:Parameter Name="TuitionCosts" Type="Decimal" />
                <asp:Parameter Name="OtherCosts" Type="Decimal" />
                <asp:Parameter Name="SpecialConditions" Type="String" />
                <asp:Parameter Name="Credential" Type="String" />
                <asp:Parameter Name="Active" Type="Boolean" />
                <asp:Parameter DbType="Date" Name="DateEntered" />
                <asp:Parameter Name="EnteredBy" Type="String" />
                <asp:Parameter DbType="Date" Name="DateUpdated" />
                <asp:Parameter Name="UpdatedBy" Type="String" />
                <asp:Parameter Name="username" Type="String" DefaultValue="Anonymous" /> <%-- username parameter filled in Page_Init. use @username instead of UpdatedBy, ActivatedBy, etc. --%>
                <asp:Parameter DbType="Date" Name="DateActivated" />
                <asp:Parameter Name="ActivatedBy" Type="String" />
                <asp:Parameter DbType="Date" Name="DateDeactivated" />
                <asp:Parameter Name="DeactivatedBy" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="OccGroup" Type="String" />
                <asp:Parameter Name="Provider" Type="String" />
                <asp:Parameter Name="Program" Type="String" />
                <asp:Parameter Name="OnetCode" Type="Int32" />
                <asp:Parameter Name="Address" Type="String" />
                <asp:Parameter Name="City" Type="String" />
                <asp:Parameter Name="Telephone" Type="String" />
                <asp:Parameter Name="TuitionCosts" Type="Decimal" />
                <asp:Parameter Name="OtherCosts" Type="Decimal" />
                <asp:Parameter Name="SpecialConditions" Type="String" />
                <asp:Parameter Name="Credential" Type="String" />
                <asp:Parameter Name="Active" Type="Boolean" />
                <asp:Parameter DbType="Date" Name="DateEntered" />
                <asp:Parameter Name="EnteredBy" Type="String" />
                <asp:Parameter DbType="Date" Name="DateUpdated" />
                <asp:Parameter Name="UpdatedBy" Type="String" />
                <asp:Parameter Name="username" Type="String" DefaultValue="Anonymous" /> <%-- username parameter filled in Page_Init. use @username instead of UpdatedBy, ActivatedBy, etc. --%>
                <asp:Parameter DbType="Date" Name="DateActivated" />
                <asp:Parameter Name="ActivatedBy" Type="String" />
                <asp:Parameter DbType="Date" Name="DateDeactivated" />
                <asp:Parameter Name="DeactivatedBy" Type="String" />
                <asp:Parameter Name="programid" Type="Int32" />
            </UpdateParameters>
        </asp:SqlDataSource>
    </div>
    </form>
</body>
</html>


using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Admin : System.Web.UI.Page
{
    protected string ClearDomain(string sItem) //Format username without domain
    {
        int sLoc = (sItem.IndexOf("\\") + 1);
        string sOutPut;
        sOutPut = sItem.Substring(sLoc);
        return sOutPut;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        //string usr;
        //usr = ClearDomain(User.Identity.Name.ToString());
    }

    protected void Page_Init(object sender, EventArgs e)
    {
        ITAAdminSqlDataSource.InsertParameters["UserName"].DefaultValue = ClearDomain(User.Identity.Name.ToString());
        ITAAdminSqlDataSource.UpdateParameters["UserName"].DefaultValue = ClearDomain(User.Identity.Name.ToString());
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос