【问题标题】:ASP.NET + DataBinder.Eval with Multiple Bound Fields具有多个绑定字段的 ASP.NET + DataBinder.Eval
【发布时间】:2009-11-30 23:15:45
【问题描述】:

我有一个显示用户列表的 GridView。每个用户都有名字、姓氏和您希望用户拥有的其他数据。每个值都通过 BoundField 公开。例如,名字可以通过“FirstName”获得,姓氏可以通过“LastName”获得。

当用户单击我在 TemplateField 中的 LinkBut​​ton 时,我需要执行一些 JavaScript。此 JavaScript 函数需要 FirstName 和 LastName。目前,我正在尝试这样的事情:

<asp:LinkButton ID="lbPrompt" runat="server" Text="prompt" CommandName="Prompt"  
  CommandArgument='<%# Eval("UserName") %>' 
  OnClientClick='<%# Eval("FirstName", "LastName", "return askUser(\"{0}\",\"{1}\");") %>' />

此语句不起作用,因为 Eval 方法不接受这种重载。我该如何完成这项任务?

谢谢

【问题讨论】:

    标签: asp.net


    【解决方案1】:
    <%# String.Format(
          "return askUser(\"{0}\",\"{1}\")", 
           Eval("FirstName"), 
           Eval("LastName")) %>
    

    【讨论】:

      【解决方案2】:

      试试

      OnClientClick='<%# "return askUser(\"" + Eval("FirstName") + "\",\"" + Eval("LastName") + "\");" %>'
      

      (未经测试)

      【讨论】:

        【解决方案3】:

        如果你在使用后面的代码,你可以在下面的事件中使用它。

            protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                LinkButton lb = e.Row.FindControl("lbPrompt") as LinkButton;
                if (lb != null)
                {
                    string firstName = Convert.ToString(DataBinder.Eval(DataBinder.GetDataItem(e.Row), "FirstName"));
                    string lastName = Convert.ToString(DataBinder.Eval(DataBinder.GetDataItem(e.Row), "LastName"));
        
                    lb.Attributes.Add("OnClick", "javascript:return askUser(" + firstName + ", " + lastName + ")");
                }
            }
        

        【讨论】:

          猜你喜欢
          • 2011-03-09
          • 2011-07-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-11
          • 1970-01-01
          相关资源
          最近更新 更多