处理ASP.NET的客户端的最佳方法是什么 我正在尝试找到最佳方法来处理ASP.NET对使用runat =“ server”创建的任何元素的值的方式,而无需诉诸使用

问题描述 投票:0回答:3
。我今天早些时候提出了以下解决方案,但我敢肯定有更多优雅的解决方案:

    $(document).ready(function() {
        var dotNetPrefix = $("[id$='prepended_ID_value']").attr('id');
        if (dotNetPrefix !== undefined) {
            dotNetPrefix = dotNetPrefix.replace('prepended_ID_value', '');
            dotNetPrefixID = '#' + dotNetPrefix;
            console.log('dotNetPrefix = ' + dotNetPrefix);
            testDotNet('prepended_ID_value');
        } else {
            console.log('Hidden Field is Missing! => <asp:HiddenField runat="server" ID="prepended_ID_value" Value="dotNet_ID_Prefix" />');
        }

    });

    function testDotNet(getID) {
        var test_dotNetPrefixID = $(dotNetPrefixID + getID).val();
        console.log('$(\'' + dotNetPrefixID + getID + '\').val() = ' + test_dotNetPrefixID);
    }
此方法的一个问题是,它要求我将以下隐藏字段放在每个页面:

<asp:HiddenField runat="server" ID="prepended_ID_value" Value="dotNet_ID_Prefix" />

...这使它有点klunky(或增加了现有的klunkiness因素)。
我的最终目标是实现它,以便我不再需要使用
<%= id.ClientID %>

(或任何需要服务器端代码的东西),以便将我所有的JS都称为包括在内,而不必将其嵌入我的ASPX页面。哦,我的第二个终极目标是,它尽可能简单,并且不需要在项目到项目的设置时间很多。

I创建了一个示例
Http://jsfiddle.net/realto619/8zzyt/2/2/

为什么不仅使用

clientidmode =“ static”
? 将其设置在web.config中,以便您的客户端ID在整个网站中写入。

如果您使用的是.NET框架4.0或更高版

您可以用静态用作
jquery asp.net clientid
3个回答
3
投票

客户端值设置为ID属性的值。如果是 控制是一个命名容器,控件用作 为其包含的任何控件命名容器的层次结构。


3
投票

您可以将jQuery结束与选择器一起使用: $('input[id$="myServerId"]')

但请记住,这种选择器比直接使用ID使用<%= id.ClientID %>.

直接选择。

http://jsperf.com/id-vs-ends-with


1
投票

正确的答案如下

var txt1 = $('#<%= txt1.ClientID %>'); $(txt1).click(function () { alert('hi'); });

HER我在JavaScript上创建一个新变量,该变量是基于其渲染客户端ID

的控制


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.