1

GridView を使用している私の割り当てに関連する質問がありました。プログラムを実行すると GridView が機能せず、なぜこれが起こっているのかわかりません。私はすでにデータベースを構成しており、そこにあるものはすべて問題ありません。これについて何か助けていただければ幸いです。

ここに私のソースコードがあります:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ProductMaintenance.aspx.cs" Inherits="ProductMaintenance" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <style type="text/css">
        .style2
        {
            width: 125px;
        }
        .style3
        {
            width: 182px;
        }
    </style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <p>
        <h3 style="font-size: larger">Product Maintenance</h3><br />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            EnableSortingAndPagingCallbacks="True" Width="664px" 
                        onrowdeleted="GridView1_RowDeleted" onrowupdated="GridView1_RowUpdated">
        </asp:GridView>
        <br />
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TechSupport_DataConnectionString %>" 
            DeleteCommand="DELETE FROM Products WHERE (ProductCode = @Original_ProductCode) AND (Name = @Original_Name) AND (Version = @Original_Version) AND (ReleaseDate = @Original_ReleaseDate)" 
            InsertCommand="INSERT INTO Products(ProductCode, Name, Version, ReleaseDate) VALUES (@ProductCode, @Name, @Version, @ReleaseDate)" 
            SelectCommand="SELECT ProductCode, Name, Version, ReleaseDate FROM Products" 
            UpdateCommand="UPDATE Products SET Name = @Name, Version = @Version, ReleaseDate = @ReleaseDate WHERE (Name = @original_Name) AND (Version = @original_Version) AND (ReleaseDate = @original_ReleaseDate) AND (ProductCode = @original_ProductCode)">
            <DeleteParameters>
                <asp:Parameter Name="Original_ProductCode" />
                <asp:Parameter Name="Original_Name" />
                <asp:Parameter Name="Original_Version" />
                <asp:Parameter Name="Original_ReleaseDate" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Name" />
                <asp:Parameter Name="Version" />
                <asp:Parameter Name="ReleaseDate" />
                <asp:Parameter Name="original_Name" />
                <asp:Parameter Name="original_Version" />
                <asp:Parameter Name="original_ReleaseDate" />
                <asp:Parameter Name="original_ProductCode" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="ProductCode" />
                <asp:Parameter Name="Name" />
                <asp:Parameter Name="Version" />
                <asp:Parameter Name="ReleaseDate" />
            </InsertParameters>
        </asp:SqlDataSource>
        <br />
        To add a new product, enter the product information and clck Add product.<br />
        <asp:Label ID="lblError" runat="server" ForeColor="Red"></asp:Label>
        <br />
        <table class="style1">
            <tr>
                <td class="style2">
                    Product code:</td>
                <td class="style3">
                    <asp:TextBox ID="txtProductCode" runat="server"></asp:TextBox>
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                        ControlToValidate="txtProductCode" 
                        ErrorMessage="Product code is a required field"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    Name:</td>
                <td class="style3">
                    <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                        ControlToValidate="txtName" ErrorMessage="Name is a required field"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    Version:</td>
                <td class="style3">
                    <asp:TextBox ID="txtVersion" runat="server"></asp:TextBox>
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
                        ControlToValidate="txtVersion" ErrorMessage="Version is a required field"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    Release date:</td>
                <td class="style3">
                    <asp:TextBox ID="txtReleaseDate" runat="server"></asp:TextBox>
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
                        ControlToValidate="txtReleaseDate" 
                        ErrorMessage="Release date is a required field"></asp:RequiredFieldValidator>
                </td>
            </tr>
        </table>
        <br />
        <asp:Button ID="btnAdd" runat="server" Text="Add Product" Width="130px" 
        onclick="btnAdd_Click" />
    </p>
</asp:Content>
4

3 に答える 3

0

あなたは与える必要がGridView1.DataSource = SqlDataSource1; あり、その後 イベント GridView1.DataBind();Page_Load

AutoGenerateColumns を true に設定するか、列を Bound - または表示する TemplateFields として提供する必要があります。

ORAutoGenerateColumns="True"はデータを表示し、列を生成します。ただし、表示される内容をカスタマイズする必要がある場合があります。これを行うには、デザイン ビューに切り替えて、グリッドビュー テンプレートを編集できます。

于 2013-02-04T09:55:34.357 に答える
0

AutoGenerateColumns = "False" を設定したため、次のような列を追加する必要があります

<Columns>
 <asp:BoundField ....
   .
   .
   .
   .
 </Columns>

または、 AutoGenerateColumns = "True" を設定する必要があります

もう 1 つ: DataSourceID を GridView に割り当てるのを忘れていました。

GridView タグ内に次のプロパティが必要です。

DataSourceID = "SqlDataSource1"

お役に立てば幸いです。

于 2013-02-04T14:40:39.827 に答える