Как лучше всего обращаться с ClientID ASP.NET
Я пытаюсь найти лучший способ справиться с тем, как ASP.NET добавляет значение к любому элементу, который создается сrunat="server"
, не прибегая к использованию<%= id.ClientID %>
, Ранее сегодня я придумал следующее решение, но уверен, что есть более элегантные решения:
$(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" />
... и это делает его немного грубым (или добавляет к существующему фактору грубости).
Моя конечная цель - сделать так, чтобы мне больше не приходилось использовать<%= id.ClientID %>
(или что-либо, что требует кода на стороне сервера), так что весь мой JS может быть вызван как включение вместо того, чтобы вставлять его в мои страницы ASPX. О, моя вторая конечная цель состоит в том, чтобы это было как можно проще и не требовало много времени на установку от проекта к проекту.
Я создал JSFiddle с примеромhttp://jsfiddle.net/Realto619/8ZZYt/2/