【问题标题】:generate onclick event in image control in asp.net在asp.net的图像控件中生成onclick事件
【发布时间】:2012-02-06 16:47:25
【问题描述】:

我在 asp.net 中有一个数据列表

我在使用 vb 和 asp

现在我的代码如下

<table border="0" cellpadding="0" cellspacing="0" >

<tr>

    <br />

   <td>

   Question Number:

        <asp:Label ID="Label3" runat="server" Text='<%# Eval("Question_no") %>' />

        <br />

   Cust_id:

        <asp:Label ID="Cust_idLabel" runat="server" Text='<%# Eval("Cust_id") %>' />

        <br />

        Question:

        <asp:Label ID="Label1" runat="server" Text='<%# Eval("Question") %>' />

        <br />

        Time:

        <asp:Label ID="Label2" runat="server" Text='<%# Eval("Date_time") %>' />

        <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/ImagesFolde/Chrysanthemum.jpg" Height="50" Width="50" **OnClientClick="s()"**/>

如您所见,所有这些都在 datalist 中

所以会重复..

我在里面放了一张图片

现在我想在点击任何图像时调用一个方法

我在 vb 中创建了一个名为 s() 的子

我想叫它

我在 clientclick() 事件中使用,但不起作用

怎么办?

【问题讨论】:

  • 是否有任何控制台错误? s 定义在哪里?
  • s 在我后面用vb语言定义
  • 那么问题来了,您使用的是客户端代码,但您的代码是服务器端的。
  • 我有什么建议?
  • 你需要了解客户端和服务端的区别。

标签: asp.net html vb.net


【解决方案1】:
<asp:ImageButton  ID="imgexpand" runat="server" ImageAlign="Bottom" ImageUrl="~/img/plus.png" OnClick="s" />

控件 onclick 语句中不需要() 这将触发 vb 代码中的sub s() 过程

【讨论】:

    【解决方案2】:

    您使用 onclientclick - 您是否使用 javascript/jquery 制作了函数? (服务器端不会被触发)

    例如: 如果您这样称呼您的客户端方法:

    OnClientClick="return myFunction();"
    

    那么你的函数应该在标题中如下:

    <script type=text/javascript>
       function myFunction()
       {
           alert("activated here");
       }
    </script>
    

    【讨论】:

    • 我可以从 javascript 调用我的 vb 脚本吗?我在asp中使用vb作为后面
    • 不 - 你为什么要这样做?除非点击 - 你想从数据库中获取数据,你可以使用 javascript 来完成每个事件(而且速度也更快)。
    • asp:image 没有 onclick 或 onclientclick 事件。
    【解决方案3】:

    假设你有一个数据列表:

    ASPX:

    <asp:DataList id="ItemsList" OnItemCommand="Item_Command" runat="server">
       <ItemTemplate>
          <asp:LinkButton id="SelectButton" Text="Select" CommandName="ModifyRow" 
          runat="server" CommandArgument='<%#Eval("Id")%>' />
       </ItemTemplate>
      </asp:DataList>
    

    VB(代码隐藏): 在这里,我从'&lt;%#Eval("Id")%&gt;' 获取 id 并将一些产品绑定到项目符号列表中:

    Protected Sub ItemsList_ItemCommand _
        (source As Object, e As RepeaterCommandEventArgs) _
        Handles Categories.ItemCommand
        If e.CommandName = "ModifyRow" Then
            ' Determine the CategoryID
            Dim categoryID As Integer = Convert.ToInt32(e.CommandArgument)
            ' Get the associated products from the ProudctsBLL and
            ' bind them to the BulletedList
            Dim products As BulletedList = _
                CType(e.Item.FindControl("ProductsInCategory"), BulletedList)
            Dim productsAPI As New ProductsBLL()
            products.DataSource = productsAPI.GetProductsByCategoryID(categoryID)
            products.DataBind()
        End If
    End Sub
    

    【讨论】:

    • 感谢您的帮助,但是您在这里所说的类别是什么意思,我必须在那里写什么
    • 我将 onitemcommand 命名为“aa”。现在我收到如下错误:'aa' 不是 'ASP.default9_aspx' 的成员。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    相关资源
    最近更新 更多