【问题标题】:Getting the value from asp:LinkButton's CommandArgument attribute using jquery/javascript使用 jquery/javascript 从 asp:LinkBut​​ton 的 CommandArgument 属性中获取值
【发布时间】:2011-06-04 03:14:37
【问题描述】:

我需要在 asp:Repeater 中获取 LinkBut​​ton 的 CommandArgument 属性的值。

我有一个 asp:Repeater,带有 2 个 LinkBut​​tons,我将其 CommandArgument 设置为一个值:

<ItemTemplate>
    <tr class="odd">                                        
        <td><%#DataBinder.Eval(Container.DataItem, "batch_id")%></td>
        <td><%#DataBinder.Eval(Container.DataItem, "productId")%></td>
        <td><%#DataBinder.Eval(Container.DataItem, "serial_number")%></td>
        <td><%#DataBinder.Eval(Container.DataItem, "activation_card_number")%></td>
        <td><%#DataBinder.Eval(Container.DataItem, "transaction_amount","{0:C}")%></td>                                        
        <td><%#DataBinder.Eval(Container.DataItem, "response_dt", "{0:M/d/yyyy HH:mm:ss}")%></td>                                        
        <td style="text-align:center;"><%#DataBinder.Eval(Container.DataItem, "resp_process_msg")%></td>
        <td style="text-align:center;"><%#DataBinder.Eval(Container.DataItem, "resp_response_code")%></td>
        <td style="text-align:center;"><asp:LinkButton ID="lnkBtnRestageAdd" CommandName="Add" CommandArgument='<%#Eval("activation_card_number")%>' runat="server" Text="stage" class="add" OnClientClick="return false;" /></td>                                                                                
        <td style="text-align:center;"><asp:LinkButton ID="lnkBtnRestageMinus" CommandName="Subtract" CommandArgument='<%#Eval("activation_card_number")%>' runat="server" Text="stage" class="minus" OnClientClick="return false;" /></td>
      </tr>
</ItemTemplate>

我使用 OnClientClick="return false;" 抑制了 PostBack这样我就可以在单击链接按钮时弹出一个 jQuery 对话框模式:

if (btnAdd != null) {
    $(".add").click(function() {
        $("#<%=divDialogAdd.ClientID %>").removeAttr("style");
        $("#<%=divDialogAdd.ClientID %>").dialog("open");
    });
}

在模态中,我还有 2 个其他 asp:LinkBut​​tons,当单击“是”按钮时,我会像这样进行回发:

yesBtn.click(function() {
    setTimeout('__doPostBack(\'btnAdd\',\'\')', 0); //need to add a param
});

我需要做的是以某种方式从中继器中的 LinkBut​​ton 中获取 CommandArgument 值,以便我可以将其作为参数传递或将其分配给隐藏字段。我已经尝试过 jQuery 的 attr(),但这仅在使用该函数设置属性时才有效。我怎样才能得到这个值,或者我可以通过什么其他方式来解决这个问题?

【问题讨论】:

    标签: javascript asp.net jquery repeater


    【解决方案1】:

    我认为您无法在 javascript 中获取该属性。因为命令参数是作为 doPostBack 函数中的参数传递的。但我认为您可以像这样更改代码以降低复杂性。

    <asp:LinkButton ID="lnkBtnRestageAdd" 
                    CommandName="Add" 
                    CommandArgument='<%#Eval("activation_card_number")%>' 
                    runat="server" 
                    Text="stage" 
                    class="add" 
                    OnClientClick='<%#Eval("activation_card_number","javascript:return YourFunction({0});")%>' />
    

    在函数YourFunction中做你想做的事情,如果按下是,则返回true并返回false

    【讨论】:

    • hrmm,当我将 放在我命名的函数中时,我发现服务器标签格式不正确
    • 试试这个..
    • OnClientClick='' 是有效的。感谢您的完美回答
    • 向您致敬,先生!!
    猜你喜欢
    • 2016-08-17
    • 1970-01-01
    • 2011-04-27
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多