【问题标题】:ASP.NET Gridview Label TextASP.NET Gridview 标签文本
【发布时间】:2013-04-08 14:07:17
【问题描述】:

我有一个位于 gridview 内的标签。我需要从 javascript 中获取标签的文本。我有一组说 6 个标签..3 从时间(小时,分钟)和到时间相同,所有下拉列表。假设我已经将值保存为

  1. 09-00 至 09-45
  2. 09-45 到 10-30
  3. 10-30 到 11-15

它们在网格中分别显示为 FromTime 和 ToTime。我的逻辑是用户不应该在这个范围内输入时间。时间下拉菜单在弹出窗口中可用。单击保存按钮后,弹出窗口关闭,选定的值填充到网格中。有人可以建议我一个解决方案吗?提前致谢。

【问题讨论】:

  • 到目前为止您已经尝试过什么。你能给出你的gridview代码吗?

标签: asp.net gridview label


【解决方案1】:

标签有 ID 吗?

你可以使用纯 JavaScript 的 JQuery 来获取它

例如:

$('#IdOfLabel').each(function(){
      var text = $(this).text();
    });

【讨论】:

  • 我有一组说 6 个标签..3 从时间(小时、分钟)和到时间相同,所有下拉列表。假设我已经将值保存为 09-00 到 09-45、09-45 到 10-30、10-30 到 11-15。它们在网格中分别显示为 FromTime 和 ToTime。我的逻辑是用户不应该在这个范围内输入时间。时间下拉菜单在弹出窗口中可用。单击保存按钮后,弹出窗口关闭,所选值填充到网格中。
  • 好的,我会确保它们都有唯一的 ID,您可以像我上面描述的那样定位它们
  • 不,它只是一个 ID。只是每一行的文字不同。看起来我需要一个 For 循环。
  • 好的,我修改了代码以获取所有匹配的元素并对其进行迭代
  • 这是网格中的标签结构。 <ItemTemplate> <asp:Label ID="lblFromTimeHour" runat="server" Text='<%# Eval("FromTimeHour")%>' Visible="false"></asp:Label> <asp:Label ID="lblFromTimeMinute" runat="server" Text='<%# Eval("FromTimeMinute")%>' Visible="false"></asp:Label> </ItemTemplate> <ItemTemplate> <asp:Label ID="lblToTimeHour" runat="server" Text='<%# Eval("ToTimeHour")%>' Visible="false"></asp:Label> <asp:Label ID="lblToTimeMinute" runat="server" Text='<%# Eval("ToTimeMinute")%>' Visible="false"></asp:Label> </ItemTemplate>
【解决方案2】:

由于label 被渲染为span 所以你需要使用下面的javascript

document.getElementById('<%= lblScore.ClientID %>').innerHTML = 'Test Value';
document.getElementById('<%= hdnScore.ClientID %>').value = 'Test Value';

因为它位于 gridview 内部,所以您可能会喜欢特定的行标签值。

【讨论】:

  • Shekhar,我刚刚修改了我的问题。看起来我需要一个 For 循环。请看一下。谢谢。
【解决方案3】:

确保 ClientIDMode 属性设置为静态,以便使用您提供的相同 ID 访问它。否则父控件 ID 将附加到标签 ID。

【讨论】:

    【解决方案4】:

    试试这个 您需要 RowDataBound 事件,您可以在其中访问由 asp.net 创建的每一行。

    在后面的代码中

    protected void gvCustomers_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if ((e.Row.RowType == DataControlRowType.DataRow))
        {
           LinkButton lnk = (LinkButton) e.Row.FindControl("lnk");
           Label lblName= (Label) e.Row.FindControl("lblName");                      
           lnk.Attributes.Add("onclick", "getValue(" + lblName.ClientID + ");"
        }
    
     }
    

    在 javascript 中

    function getValue(lblId)
    {
         alert($(lblId).text());
    }
    

    或试试这个

    只需在 ID 为 updateBtn 的更新按钮上添加一个类名,然后尝试此代码

    <script type="text/javascript">
            $(document).ready(function () {
                $(".updateBtn").click(function (e) {
    
                    var Client = $(this).closest('tr').find("span[id*=lblClientName]").text();
                    var Date = $(this).closest('tr').find("span[id*=ltDate]").text();
                    alert(Client);
                    e.preventDefault();
                });
            });
        </script>
    

    【讨论】:

      猜你喜欢
      • 2011-07-25
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多