javascript 如何在自定义列表选择器中从JS到C#调用ASP.NET中的函数?

9fkzdhlc  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(108)

我有一个自定义列表选择器,它通过设置隐藏字段的值来处理前端的项目选择,我在后端访问该值。问题是我想在值更改时引发一个事件,但我不知道如何调用后端的函数。
这是进行新选择时的JS逻辑:

<script type="text/javascript">

    $(document).ready(function () {
        $('#modal_<%# this.ClientID %>').hide();
    });

    function onSelected_<%# this.ClientID %>(value, display) {
        var hidSelected = $('#<%# this.hidSelected.ClientID %>');
        $(hidSelected).val(value);
        
        $('#<%# this.txtDisplay.ClientID %>').val(display);
        $('#modal_<%# this.ClientID %>').modal('hide');

        $(hidSelected).trigger('change');
    }
</script>

<asp:HiddenField ID="hidSelected" runat="server" />

我试过了,但它没有被触发:
x一个一个一个一个x一个一个二个x
我也尝试过WebMethod和 AJAX ,但我在另一个页面中使用它作为标记,所以不起作用。
谢谢你的帮助!

mzsu5hc0

mzsu5hc01#

如果您需要触发该页面上的代码存根(代码隐藏)。
然后只需放入一个按钮(比如在隐藏字段下方),如下所示:

<asp:HiddenField  ID="hidSelected" runat="server" />

        <asp:Button ID="cmdHfield" runat="server" Text="Hfield change"
            OnClick="cmdHfield_Click"
            ClientIDMode="Static"
            style="display:none"
            />

然后,您的js客户端代码可以是:

function onSelected_<%# this.ClientID %>(value, display) {
                var hidSelected = $('#<%# this.hidSelected.ClientID %>');
                $(hidSelected).val(value);
    
                $('#<%# this.txtDisplay.ClientID %>').val(display);
                $('#modal_<%# this.ClientID %>').modal('hide');

                $('#cmdHfield').click();

            }

因此,在客户端代码更改隐藏字段后,我们只需单击隐藏字段正下方的按钮。
注意我们是如何使用style=“display:none”来“隐藏”按钮的
因此,没有“事件”可以附加到隐藏字段,但是,你可以自由地在页面上放置一个按钮,然后用js代码“点击”那个按钮,这就相当于根据需要从js代码中运行代码。

相关问题