У меня есть один Repeater
с несколькими rows.each строка имеет один LinkButton и один HiddenField. Значение HiddenField связывается во время события Repeater OnItemDataBound
.
Мой вопрос в том, что как я могу передать это HiddenField
поля CommandArgument
с помощью CommandArgument
этого LinkButton?
Ниже приведен мой исходный код.
<asp:Repeater ID="rptServiceRequestList" runat="server" OnItemCommand="rptServiceRequestList_ItemCommand" OnItemDataBound="rptServiceRequestList_ItemDataBound">
<ItemTemplate>
<asp:LinkButton ID="btnCustomerDeposit" runat="server" Text="Pay Deposit" CommandName="DepositFees" CommandArgument='<%# Eval("ServiceRequestId") %>'>
</asp:LinkButton>
<asp:HiddenField ID="hidAmount" runat="server" />
</asp:Repeater>
Пожалуйста помогите. спасибо всем заблаговременно.
Да, вы можете установить несколько аргументов команды, иначе вы можете использовать FindControl("hidAmount")
использования FindControl("hidAmount")
.
Вы можете использовать код ниже.
HiddenField hdnAmount = (HiddenField)rptServiceRequestList.FindControl("hidAmount"); int amnt = Convert.ToInt32(hdnAmount.Value);
Вы можете установить несколько аргументов команды (отправить hidamount вместе с командой Argument) следующим образом:
<asp:LinkButton ID="btnCustomerDeposit" runat="server" Text="Pay Deposit" CommandName="DepositFees" CommandArgument='<%#Eval("ServiceRequestId") + "|" +Eval("HidAmount")%>'
</asp:LinkButton>
И по ItemCommand:
protected void rptServiceRequestList_ItemDataBound(Object Sender, RepeaterCommandEventArgs e)
{
string[] arg = new string[2];
arg = e.CommandArgument.ToString().Split('|'); // Split Here to seprate CommandName And Hidden Value
string YourcommandName = arg[0]; // Your Command Name
string YourHiddenValue = arg[1]; // Your Hidden Field Value
}