【问题标题】:server control onclick error服务器控制onclick错误
【发布时间】:2011-04-30 23:53:46
【问题描述】:

我正在使用一个数据列表,其中我定义了一个项目模板。我在这个项目模板中使用 asp:LinkBut​​ton。我在这个链接按钮标签中使用了 OnClick="methodname"。我在后面的代码中定义了相应的 mehtodname,但是当页面加载和单击数据列表中的任何项目时,我不断收到 Java 运行时错误。它说我没有用提到的名称定义 javascript 函数函数。

不是 asp:LinkBut​​ton 一个服务器控件。我想在后面使用我的 c# 代码而不是 javascript。我该怎么做??

<asp:DataList ID="DLID" RepeatColumns="5" RepeatDirection="Horizontal" runat="server">

&lt;ItemTemplate>
&lt;div class="home">
&lt;div class="homeblock">&lt;/div>
&lt;div class="homeitem">
&lt;ul>&lt;li>&lt;span style="font-size:small;">
&lt;asp:LinkButton ID="TopItem" runat="server" OnClick="Item_OnClick">&lt;%# Container.DataItem %>&lt;/asp:LinkButton>
&lt;/span>&lt;/li>&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/ItemTemplate>
&lt;/asp:DataList>

【问题讨论】:

  • 发布更多代码。还发布渲染输出。
  • 混淆了 OnClick 和 OnClientClick?我们真的需要更多代码。

标签: c# javascript asp.net runtime-error servercontrols


【解决方案1】:

只需将 C# 代码/逻辑放在 asp:LinkBut​​ton Click Event 中即可。

【讨论】:

    【解决方案2】:

    对我来说非常好用。使用您的标记代码减去类名。这是我使用的代码隐藏:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            string[] ds = new string[] { "a", "b", "c", "d", "e", "f", "g" };
            DLID.DataSource = ds;
            DLID.DataBind();
        }
    }
    
    protected void Item_OnClick(object sender, EventArgs e)
    {
        //do stuff
    }
    

    确切的错误信息是什么?

    【讨论】:

    • 现在可以了。感谢您的简化代码!我还需要将字符串绑定到 asp:label 控件。我实际上需要将它绑定到用户从“TopItem”链接按钮控件中选择的字符串。我怎样才能做到这一点? &lt;asp:Label ID="Item" runat="server" Text="&lt;%# Container.DataItem %&gt;">&lt;/asp:Label>我可以把这个 asp:label 控件绑定到一个字符串吗?还是我必须使用不同的控件来实现这一点?
    • 我刚刚在后面的代码中解决了这个问题,方法是将标签的文本属性设置为我在 onclick 事件中提取的字符串值。无论如何,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    相关资源
    最近更新 更多