0

テンプレートフィールドが含まれているグリッドビューですでに使用されているSqlDataSourceと更新機能を使用してボタンフィールドを使用して、入力されたデータをSQLデータベースにフィードバックするテキストボックスのTemplatefield列を取得する方法を知っている人はいますか?私はこれを行う方法を見つけることができなかったので、誰かがこれを機能させる方法を知っているかどうか疑問に思っていました。

このジレンマを解決するためにさらに情報が必要な場合は、お知らせください。

テキストボックスの情報と同じ行の別の列のフィールドの編集と変更を有効にすると、SQLサーバーにフィードバックする情報を取得できますが、編集モードの場合でも、更新ボタンをクリックする場合でも、テキストボックス。

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<center>
<form id="form1" runat="server">
<div>

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="Brdcst_Nbr" DataSourceID="SqlDataSource1" 
        EmptyDataText="There are no data records to display." Width="657px">
        <Columns>
            <asp:BoundField DataField="Brdcst_Nbr" HeaderText="Brdcst_Nbr"     ReadOnly="True" 
                SortExpression="Brdcst_Nbr" />
            <asp:BoundField DataField="Item_Nbr" HeaderText="Item_Nbr" 
                SortExpression="Item_Nbr" ReadOnly="True" />
            <asp:CheckBoxField DataField="IsPicked" HeaderText="IsPicked" 
                SortExpression="IsPicked" />
            <asp:TemplateField SortExpression="Row" HeaderText="Row">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Mode="twoway" AutoPostBack="true" CausesValidation="true" Text='<%# Bind("Row") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Mode="twoway" AutoPostBack="true" CausesValidation="true" Text='<%# Bind("Row") %>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:ButtonField ButtonType="Button" CommandName="Update" Text="Update" />
            <asp:ButtonField ButtonType="Button" CommandName="Edit" Text="Edit" />
        </Columns>
        <EditRowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
        <RowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConflictDetection="CompareAllValues" 
        ConnectionString="<%$ ConnectionStrings:ORDCConnectionString1 %>" 
        DeleteCommand="DELETE FROM [Test_New_Transpick] WHERE [Brdcst_Nbr] = @original_Brdcst_Nbr AND (([Item_Nbr] = @original_Item_Nbr) OR ([Item_Nbr] IS NULL AND @original_Item_Nbr IS NULL)) AND [IsPicked] = @original_IsPicked AND (([Row] = @original_Row) OR ([Row] IS NULL AND @original_Row IS NULL))" 
        InsertCommand="INSERT INTO [Test_New_Transpick] ([Brdcst_Nbr], [Item_Nbr], [IsPicked], [Row]) VALUES (@Brdcst_Nbr, @Item_Nbr, @IsPicked, @Row)" 
        UpdateCommand="UPDATE [Test_New_Transpick] SET [IsPicked] = @IsPicked, [Row] = @Row WHERE [Brdcst_Nbr] = @original_Brdcst_Nbr" 
        OldValuesParameterFormatString="original_{0}" 
        ProviderName="<%$ ConnectionStrings:ORDCConnectionString1.ProviderName %>" 
        SelectCommand="SELECT * FROM [Test_New_Transpick]" >
        <DeleteParameters>
            <asp:Parameter Name="original_Brdcst_Nbr" Type="String" />
            <asp:Parameter Name="original_Item_Nbr" Type="String" />
            <asp:Parameter Name="original_IsPicked" Type="Boolean" />
            <asp:Parameter Name="original_Row" Type="String" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="Brdcst_Nbr" Type="String" />
            <asp:Parameter Name="Item_Nbr" Type="String" />
            <asp:Parameter Name="IsPicked" Type="Boolean" />
            <asp:Parameter Name="Row" Type="String" />
        </InsertParameters>
        <UpdateParameters>
            <asp:Parameter Name="Item_Nbr" Type="String" />
            <asp:Parameter Name="IsPicked" Type="Boolean" />
            <asp:Parameter Name="Row" Type="String" />
            <asp:Parameter Name="original_Brdcst_Nbr" Type="String" />
            <asp:Parameter Name="original_Item_Nbr" Type="String" />
            <asp:Parameter Name="original_IsPicked" Type="Boolean" />
            <asp:Parameter Name="original_Row" Type="String" />
        </UpdateParameters>
    </asp:SqlDataSource>

</div>
</form>
</center>
</body>
</html>
4

1 に答える 1

0

そのため、SQLdatabase のプロパティを CompareAllValues から OverwriteChanges に変更すると、この問題が修正されました。更新が必要な行/列のテキストボックスを変更するだけで、他に何も変更することなく、変更をSQLデータベースに書き戻すことができるようになりました。

于 2012-11-14T01:25:15.357 に答える