c# - 标签客户端的设置值

标签 c# javascript asp.net sharepoint click

我有一个弹出文件夹选择器的网页。它允许用户在网站上选择一个文件夹,然后跟踪对其内容的更改。

我需要传递弹出窗口中的值,该值在 JavaScript 中返回给我,并将其传递给服务器端方法。

AJAX 不适用于此,因为我正在使用 SharePoint。

我从 JavaScript 中的回调中获取了我需要的数据,但是如果我尝试设置 $(control).text(),这将不起作用。

我能否以某种方式设置标签的值(呈现为跨度)并将其传回 onClick?

当前工作代码:

$('.tile').on("click", ".LibraryPickerInitiator", function () {
    var hiddenField = $(this).siblings('[type=hidden]');
    var callback = $.proxy(function (s) { this.val(s); }, hiddenField);
    LaunchPickerTreeDialog('CbqPickerSelectListTitle', 'CbqPickerSelectListText', 'websLists', '', '/', '', '', '', '/_layouts/images/smt_icon.gif', '', callback, '', '');
});

标记:

<div id="WebSettings" class="WebSettings" runat="server">
    <div class="LibraryPickerInitiator">Pick a Library</div>
    <asp:HiddenField ID="HiddenField1" runat="server" />
    <asp:Label ID="TreePickerLabel" CssClass="PickerPlaceHolder" runat="server" Text="No List Selected"></asp:Label>
    <asp:Button ID="SubmitList" runat="server" Text="Get List Data" onclick="SubmitList_Click" />
</div>

事件:

protected void SubmitList_Click(object sender, EventArgs e)
{
    string pickerData = HiddenField1.Value;
}

最佳答案

我看不出有什么理由不能,我会使用 $.proxy创建回调以确保适当的范围时:

var callback = $.proxy(function (s) {
    this.html(s); 
}, sisterLabel);

如果您向标记添加隐藏输入,您可以像这样更改您的客户端代码:

var sibs = $(this).siblings();

var callback = $.proxy(function (s) {
    this.label.html(s); // set label text
    this.hidden.val(s); // set hidden field val
}, { label: sibs.filter('span'), hidden: sibs.filter(':input:hidden') });

关于c# - 标签客户端的设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359065/

相关文章:

c# - Asp.net HttpCookie 指定端口

Javascript。带有 React 的可拖动 div

javascript - 使用 rowspan 将重复值单元格合并为具有相同空间量的单个单元格

c# - 当 DPI 为 150% 时,我的表单无法正确打印

c# - 为什么 Clone 方法没有放在 System.Object 中?

asp.net - 框和标签未对齐 CSS

asp.net - 在 ASP.NET 中以更快的速度发送电子邮件

asp.net - vs2010 - 用双引号包围字符串的快捷方式

c# - .NET 中的 SerialPort 是非托管资源吗?我的包装类是否正确?

javascript - 在 COR 响应期间出现服务器 500 错误