Question

I have some problems inserting a const "1" into a textbox which is gridview.

The gridview code:

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" EnableViewState="False">
        <Columns>
        <asp:BoundField DataField="Price" HeaderText="Price" ItemStyle-CssClass="price" >

<ItemStyle CssClass="price"></ItemStyle>
            </asp:BoundField>

                         <asp:TemplateField HeaderText="ProductID">
                <ItemTemplate>
                    <asp:Label ID="lblID" runat="server" Text='<%# Eval("ProductID") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
             <asp:TemplateField HeaderText="ProductName">
                <ItemTemplate>
                    <asp:Label ID="lblName" runat="server" Text='<%# Eval("ProductName") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

             <asp:TemplateField HeaderText="Summary">
                <ItemTemplate>
                    <asp:Label ID="lblSum" runat="server" Text='<%# Eval("Summary") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
             <asp:TemplateField HeaderText="picPath">
                <ItemTemplate>
                    <asp:Label ID="lblPic" runat="server" Text='<%# Eval("picPath") %>' ></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText = "quantity">
            <ItemTemplate>
                <asp:TextBox ID="lblquantity" runat="server" ></asp:TextBox>

            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField HeaderText = "Total">
            <ItemTemplate>
                <asp:Label ID="lblTotal" runat="server" ></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

All the information is populated from the session of the previous page, beside this textbox which doesn't comes from anywhere, it's a quantity textbox which the user should enter. And I want it to have a default value of "1".

I don't actually know how to insert into a textbox which is in the gridview.

Please help me.

Thanks

Était-ce utile?

La solution

<asp:TemplateField HeaderText = "quantity">
        <ItemTemplate>
            <asp:TextBox ID="lblquantity" runat="server" Text='<%# Eval("quantity") == DBNull.Value ? "1" : Eval("quantity").ToString()' ></asp:TextBox>
        </ItemTemplate>
</asp:TemplateField>

if quantity value is null in the table, then Text property will be default 1. Otherwise it will be quantity column in the table.

Autres conseils

This may be because code is also checking for Header and footer template..

just put a null check before settings value...

TextBox tb = (TextBox)e.Row.FindControl("lblquantity");
if(tb!=null)
    tb.Text = Convert.ToString(123);

This will surely work...

You can put chis code in your GridView's RowDataBound event...

TextBox tb = (TextBox)e.Row.FindControl("lblquantity");
tb.Text = Convert.ToString(123);

I hope this helps...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top