-1

asp.net C#のGridviewにテキストフィールド列を追加する方法は?

Gridviewの最後にテキストフィールド列を追加する必要があります。このように動的にデータテーブルを作成します。comisson列のテキストフィールドを追加する必要があります

DataTable dt = new DataTable(); // create data table
            dt.Columns.Add("TransDate"); // create column 1
            dt.Columns.Add("ExHouse");// create column 2           
            dt.Columns.Add("RemName");
            dt.Columns.Add("Currency");
            dt.Columns.Add("Amount");
            dt.Columns.Add("LKRAmount");
            //dt.Columns.Add(new DataColumn("Comission", typeof(string))); 
            dt.Columns.Add("Comission");
            dt.Columns.Add("ValueDate");

            DataRow dr = dt.NewRow(); // Create new Row
            TextBox comi=new TextBox();
            dr["TransDate"] = RemittanceToSelectedTable.TransDate; 
            dr["ExHouse"] = RemittanceToSelectedTable.ExHouse; //add data to coolumn no2
            dr["RemName"] = RemittanceToSelectedTable.RemName;
            dr["Currency"] = RemittanceToSelectedTable.Currency;
            dr["Amount"] = RemittanceToSelectedTable.Amount;
            dr["LKRAmount"] = RemittanceToSelectedTable.LKRAmount;

            dr["ValueDate"] = RemittanceToSelectedTable.ValueDate;
            dr["Comission"] = comi;

            aa.Add((string)dr["TransDate"]); 
            ab.Add((string)dr["ExHouse"]);
            ac.Add((string)dr["RemName"]);
            ad.Add((string)dr["Currency"]);
            ae.Add((string)dr["Amount"]);
            af.Add((string)dr["LKRAmount"]);
          //  ah.Add((string)dr["Comission"]);
            ag.Add((string)dr["ValueDate"]); 


            for (i = 0; i < ag.Count; i++)
            {
                dt.Rows.Add(aa[i], ab[i], ac[i], ad[i], ae[i], af[i], ag[i]); // add rows to data table
            }

            return dt;

ありがとう !

4

3 に答える 3

3

返信ありがとうございます...これが最終的な答えです...GridViewは次のようにする必要があります

        <Columns>
          <%--<asp:BoundField HeaderText="Comission" DataField="Comission"></asp:BoundField>--%>
         <%--<asp:TextBox ID="txtChildren" Text="assan" runat="server"  Width="25px"></asp:TextBox>--%>

            <asp:CommandField ShowDeleteButton="True" />
            <asp:BoundField DataField="TransDate" HeaderText="TransDate" />
            <asp:BoundField DataField="ExHouse" HeaderText="ExHouse" />
            <asp:BoundField DataField="RemName" HeaderText="RemName" />
            <asp:BoundField DataField="Currency" HeaderText="Currency" />
            <asp:BoundField DataField="Amount" HeaderText="Amount" />
            <asp:BoundField DataField="LKRAmount" HeaderText="LKRAmount" />

        <asp:TemplateField HeaderText="Comission">
        <ItemTemplate>
        <asp:TextBox ID="txtTest" runat="server"/>
        </ItemTemplate>
        </asp:TemplateField>

        <asp:BoundField HeaderText="ValueDate" DataField="ValueDate"></asp:BoundField>

        </Columns>


    </asp:GridView>

そしてdatatableはこのようになります

        DataTable dt = new DataTable();

        dt.Columns.Add("TransDate"); // create column 1
        dt.Columns.Add("ExHouse");// create column 2           
        dt.Columns.Add("RemName");
        dt.Columns.Add("Currency");
        dt.Columns.Add("Amount");
        dt.Columns.Add("LKRAmount");
        dt.Columns.Add("Comission");           
        dt.Columns.Add("ValueDate");

        DataRow dr = dt.NewRow(); // Create new Row

        dr["TransDate"] = RemittanceToSelectedTable.TransDate; //add data to coolumn no1
        dr["ExHouse"] = RemittanceToSelectedTable.ExHouse; //add data to coolumn no2
        dr["RemName"] = RemittanceToSelectedTable.RemName;
        dr["Currency"] = RemittanceToSelectedTable.Currency;
        dr["Amount"] = RemittanceToSelectedTable.Amount;
        dr["LKRAmount"] = RemittanceToSelectedTable.LKRAmount;
        dr["Comission"] = 0;
        dr["ValueDate"] = RemittanceToSelectedTable.ValueDate;


        aa.Add((string)dr["TransDate"]); 
        ab.Add((string)dr["ExHouse"]);
        ac.Add((string)dr["RemName"]);
        ad.Add((string)dr["Currency"]);
        ae.Add((string)dr["Amount"]);
        af.Add((string)dr["LKRAmount"]);
        ah.Add("0");
        ag.Add((string)dr["ValueDate"]); // 


        for (i = 0; i < ag.Count; i++)
        {
            dt.Rows.Add(aa[i], ab[i], ac[i], ad[i], ae[i], af[i], ah[i], ag[i]); 
        }



        return dt;
于 2012-08-01T16:29:33.997 に答える
1

テンプレートフィールドを追加し、テキストボックスをItemTemplateにドロップすることができます。

<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"Text=""></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
于 2012-08-01T04:54:08.710 に答える
0

に行を追加するには、DataTableを使用できます。

DataRow dr = dt.NewRow(); // Create new Row
dr["TransDate"] = RemittanceToSelectedTable.TransDate; 
dr["ExHouse"] = RemittanceToSelectedTable.ExHouse; //add data to coolumn no2
dr["RemName"] = RemittanceToSelectedTable.RemName;
dr["Currency"] = RemittanceToSelectedTable.Currency;
dr["Amount"] = RemittanceToSelectedTable.Amount;
dr["LKRAmount"] = RemittanceToSelectedTable.LKRAmount;
dr["ValueDate"] = RemittanceToSelectedTable.ValueDate;
dr["Comission"] = 0; //default value for commission
dt.Rows.Add(dr);

次に、これをコミッションテキストボックスに表示するために、データにテキストボックスを作成しません。それが提示されるコントロールです。データはtext、int、floatになります。

<asp:BoundField HeaderText="Comission" DataField="Comission"></asp:BoundField>
于 2012-08-01T05:21:33.530 に答える