добавить столбцы с текстовыми полями в gridview, используя C # - PullRequest
3 голосов
/ 23 мая 2009

Я работаю над корзиной для покупок на веб-сайте, и мои товары (которые были добавлены в корзину) находятся в архиве. И используя эти значения, я прочитал остальные значения из БД и успешно заполнил их в таблице.

        if (d1.Read())
        {
            d1.Close();
            sda.SelectCommand = searchResult;
            sda.Fill(dt);
            GridView2.DataSource = dt;
            GridView2.DataBind();
        }

Как добавить дополнительный столбец с именем «Количество» в этом виде сетки вместе с текстовым полем, чтобы пользователь мог ввести значение для количества для каждого элемента, отображаемого в виде сетки?

Любая помощь / предложения / ссылки будут с благодарностью.

спасибо,

// редактировать 2

<asp:GridView ID="GridView2" runat="server" BackColor="#388AD0"
    BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black"
    GridLines="Vertical" Height="160px" Style="left: 72px;
    position: relative; top: 8px" Width="504px" AllowPaging="True" PageSize="5">
    <FooterStyle BackColor="#E0E0E0" />
    <PagerStyle BackColor="Silver" ForeColor="Black" HorizontalAlign="Center" />
    <SelectedRowStyle BackColor="#388AD0" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="#388AD0" />
    <PagerSettings Mode="NextPrevious" />
</asp:GridView>

// редактировать 3

public void additem(string additem) 
{
    DataTable dt = new DataTable();
    string ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ewap_k.mdf;Integrated Security=True;User Instance=True";
    using (SqlConnection searchCon = new SqlConnection(ConnectionString))
    {
        using (SqlCommand searchResult = new SqlCommand("SELECT ItemID, Name, RelDate, Price, Status FROM item_k WHERE ItemID IN ( " + itemIDs + ")", searchCon))
        {
            searchCon.Open();
            SqlDataReader d1 = searchResult.ExecuteReader();
            SqlDataAdapter sda = new SqlDataAdapter();

            if (d1.Read())
            {
                d1.Close();
                sda.SelectCommand = searchResult;
                sda.Fill(dt);
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }
            else { }
            searchCon.Close();
        }
    }
}

// редактировать 4

<asp:GridView ID="GridView1" runat="server" Style="left: 8px; position: relative;
    top: 0px">
    <Columns>
        <asp:BoundField DataField="ItemID"  Visible="false"/>
        <asp:BoundField DataField="Name" />
        <asp:BoundField DataField="RelDate" />
        <asp:TemplateField>
        <ItemTemplate>
            <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
        <asp:BoundField DataField="Price" />
        <asp:BoundField DataField="Status" />
    </Columns>
</asp:GridView>

1 Ответ

3 голосов
/ 23 мая 2009

Вы можете добавить поле шаблона и удалить текстовое поле в ItemTemplate следующим образом:

<asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>

[Редактировать] Вот более полная сетка:

<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:BoundField />
        <asp:BoundField />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Обратите внимание, что TemplateField отображается везде, где я решаю поместить его в список столбцов. Если это все еще не работает для вас, вы можете опубликовать свою разметку GridView, чтобы я мог видеть, что у вас есть?

[Edit 2] Вот обновленная версия вашей сетки. Вам просто нужно настроить BoundFields для привязки к любому значению в вашем наборе данных, которое вам нужно.

<asp:GridView ID="GridView2" runat="server" BackColor="#388AD0" BorderColor="Black"
    BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical"
    Height="160px" Style="left: 72px; position: relative; top: 8px" Width="504px"
    AllowPaging="True" PageSize="5">
    <Columns>
        <asp:BoundField />
        <asp:BoundField />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <FooterStyle BackColor="#E0E0E0" />
    <PagerStyle BackColor="Silver" ForeColor="Black" HorizontalAlign="Center" />
    <SelectedRowStyle BackColor="#388AD0" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="#388AD0" />
    <PagerSettings Mode="NextPrevious" />
</asp:GridView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...