0

我正在使用带有 c# 的 ASP.NET 4.0。

在我的 aspx 页面中,我想获取数据列表 itemtemplete.like 中的隐藏字段值

<asp:DataList ID="dlKit" runat="server">
    <HeaderTemplate>
        <table cellpadding="5" cellspacing="5" width="100%">
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td style="width: 115px">
                <asp:HiddenField ID="DeviceId" runat="server" Value='<%#Eval("Id")%>' />
                <asp:HiddenField ID="DeviceType" runat="server" Value='<%# string.Format("{0}", Eval("DeviceType")) %>' />
                <asp:Label ID="lblDevicetype" runat="server" Text='<%#Eval("DeviceType_Name")%>'></asp:Label> <span style="float: right;">:</span>

            </td>
            <td style="padding-left: 0;">
                <asp:HiddenField ID="hfSelectedDeviceType" runat="server" Value="" />
                <asp:CheckBox ID="chkDevice" runat="server" Checked="true" onclick="javascript:SelectRBTN(this);" />
            </td>
        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:DataList>

SelectRBTN(this)函数中,我想获取DeviceType(隐藏字段)值。

我怎么得到?请为此提供适当的解决方案。

4

5 回答 5

1

尝试这个。它将在单击DeviceType的相应行中进行选择chkDevice

function SelectRBTN(element)
{
    var val = element.parent().parent().next("#DeviceType").val();
}

编辑:
如果您Undefined在上述代码的 javascript 控制台中遇到错误,请Inspect Element在 Chrome 中执行,找出 ClientIDDeviceType并在那里替换它。

编辑 1:
请参阅上面的更改代码。我已更改thiselement. 我认为这可能是问题所在。

编辑 2:
我已经对此进行了测试并且它正在工作。
更换你的

<asp:HiddenField ID="DeviceType" runat="server" Value='<%# string.Format("{0}", Eval("DeviceType")) %>' />

<div class="DeviceTypeClass">
    <asp:HiddenField ID="DeviceType" runat="server" Value='<%# string.Format("{0}", Eval("DeviceType")) %>' />
</div>

并使用以下 javascript 函数:

function SelectRBTN(element) {
    var val = $(element).parent().parent().find(".DeviceTypeClass")
        .find(":first-child").val();
}
于 2013-10-28T06:38:45.477 回答
0

有两种方法可以做到

解决方案 1

  1. 在javascript中再添加一个参数:SelectRBTN(this,selectedDeviceType);
  2. 在服务器中获取“hfSelectedDeviceType”的clientID并将其传递给函数。
  3. 现在在 Javascript 中设置值(使用 jquery 或任何你想要的库。)

解决方案 2

  1. 在函数SelectRBTN中,使用jquery找到父td
  2. 找到隐藏字段并设置值。
于 2013-10-28T06:32:15.953 回答
0

演示 jsFiddle

JS

function SelectRBTN(obj)
{
    alert($('#DeviceType').val());
}
于 2013-10-28T06:32:27.620 回答
0

要在客户端获取 DeviceType 值,您应该设置 ClientIDMode="Static",然后执行此操作以获取值:

$("#DeviceType").val();

设置:

$("#DeviceType").val("new value");
于 2013-10-28T06:33:02.977 回答
0

尝试这个,

var val= $("#"+ '<%= hfSelectedDeviceType.ClientID %>').val();
于 2013-10-28T07:15:28.943 回答