0

グリッドビューのテキストボックスに const "1" を挿入する際に問題があります。

グリッドビュー コード:

<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>

すべての情報は、前のページのセッションから取り込まれます。どこからも来ないこのテキストボックスのほかに、ユーザーが入力する必要がある数量テキストボックスです。そして、デフォルト値を「1」にしたいと思います。

グリッドビューにあるテキストボックスに挿入する方法が実際にはわかりません。

私を助けてください。

ありがとう

4

3 に答える 3

2

これは、コードがヘッダーとフッターのテンプレートもチェックしていることが原因である可能性があります。

設定値の前にnullチェックを入れるだけです...

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

これは確かに機能します...

于 2012-10-07T16:26:12.017 に答える
1

GridViewのRowDataBoundイベントにchisコードを配置できます...

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

これがお役に立てば幸いです...

于 2012-10-07T15:42:56.203 に答える
1
<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>

テーブルの数量値が null の場合、Text プロパティはデフォルトの 1 になります。それ以外の場合は、テーブルの数量列になります。

于 2012-10-07T15:36:19.400 に答える