0

asp.netの境界付きGridviewに示されているように、今すぐ支払うボタンを追加したいと思います。私は次のように使用しました

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
    AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="challanstatus" 
    Width="646px">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
            ReadOnly="True" SortExpression="ID" />
        <asp:BoundField DataField="RegisNo" HeaderText="RegisNo" 
            SortExpression="RegisNo" />
        <asp:BoundField DataField="Reason" HeaderText="Reason" 
            SortExpression="Reason" />
        <asp:BoundField DataField="Code" HeaderText="Code" SortExpression="Code" />
        <asp:BoundField DataField="DateofChallan" HeaderText="DateofChallan" 
            SortExpression="DateofChallan" />
        <asp:BoundField DataField="Status" HeaderText="Status" 
            SortExpression="Status" />
        <asp:BoundField DataField="Amount" HeaderText="Amount" 
            SortExpression="Amount" />

<asp:ButtonField  ButtonType="Button" CommandName="Edit" Text="Edit" Visible="True" CommandArgument='<%# Container.DataItemIndex %>' />


    </Columns>
</asp:GridView>
<asp:AccessDataSource ID="challanstatus" runat="server" 
    DataFile="~/App_Data/Database.mdb" 
    SelectCommand="SELECT * FROM [tblchallan] WHERE (([RegisNo] = ?) AND ([RegisNo] = ?))">
    <SelectParameters>
        <asp:ControlParameter ControlID="DropDownList1" Name="RegisNo" 
            PropertyName="SelectedValue" Type="String" />
        <asp:ControlParameter ControlID="DropDownList1" Name="RegisNo2" 
            PropertyName="SelectedValue" Type="String" />
    </SelectParameters>
</asp:AccessDataSource>

私が使用する場所

<asp:ButtonField  ButtonType="Button" CommandName="Edit" Text="Edit" Visible="True" CommandArgument='<%# Container.DataItemIndex %>' />

ボタンを挿入しますが、次のエラーが発生します:

説明: この要求を処理するために必要なリソースの解析中にエラーが発生しました。次の特定の解析エラーの詳細を確認し、ソース ファイルを適切に変更してください。

パーサー エラー メッセージ: データバインディング式は、DataBinding イベントを持つオブジェクトでのみサポートされます。System.Web.UI.WebControls.ButtonField には DataBinding イベントがありません。

4

2 に答える 2

2

回答:-変数の行から値を取得する

このようにボタンをバインドします

<asp:TemplateField>
 <ItemTemplate>
  <asp:Button runat="server" CommandName="Edit" Text="Pay Now" CommandArgument='<%# Eval("Amount")%>' />
 </ItemTemplate>
</asp:TemplateField>

このような OnRowCommand イベントでこの行の値を取得します:-

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
 if (e.CommandName == "Edit")
 {
  decimal amount = Convert.ToDecimal(e.CommandArgument);
 }
}

これが価値を得るのに役立つことを願っています..

于 2012-08-15T06:17:14.000 に答える
1
<asp:TemplateField>
  <ItemTemplate>
     <asp:Button runat="server" CommandName="Edit" Text="Pay Now" CommandArgument='<%# Container.DataItemIndex %>' />
  </ItemTemplate>
</asp:TemplateField>

このコードの後に​​このコードを使用してください

<asp:BoundField DataField="Amount" HeaderText="Amount" SortExpression="Amount" />

役立つと思います!! 問題が発生した場合は返信してください。

于 2012-08-15T05:01:32.077 に答える