【问题标题】:How can I pass the value of a control in a datalist to JavaScript?如何将数据列表中控件的值传递给 JavaScript?
【发布时间】:2009-08-16 07:09:20
【问题描述】:

我有一个这样的数据列表:

 <asp:DataList ID="dl" runat="server" Width="301px" onitemcommand="dl_ItemCommand">
     <ItemTemplate>
      <table style="border:solid 1 #CCCCCC" >
             <tr align="left">
               <td align="left">
              <img id="imgPhoto" runat="server"
               alt="Company Logo"
               border="0" 
               align="middle"
               style="border:solid 5px #CCCCCC;height:10px"src='<%#GetImage(Eval("ImageName")) %>'
                                                            />
   <asp:HiddenField id="hdnImg" runat="server" Value='<%#Eval("ImageName") %>'/>
        </td>
         </tr>
     <tr align="center">
       <td align="center">


 <asp:LinkButton ID="lnkChangeLogo" runat="server"                                                                    Text="ChangeLogo" OnClientClick="javascript:showLayerUpLoad();return  false;">       </asp:LinkButton>
    <br />
    <asp:LinkButton ID="lnkRemoveLogo" runat="server"                                                               Text="RemoveLogo"  OnClientClick="javascript:ConfirmChoice();return false;"/>
                                        </td>
                                </tr>
                            </table>                   
                    </ItemTemplate>

                </asp:DataList>

我想将 imagePhoto 的 src 传递给函数 showLayerUpLoad()。我该怎么做。我可以在 ItemCreated 事件中执行此操作。有人可以帮忙吗?showLayerUpLoad() 在 javascript 中是 fn 以显示弹出窗口。

【问题讨论】:

    标签: asp.net javascript vb.net datalist


    【解决方案1】:

    您可以做的一件事是稍微修改一下 javascript 函数。让它接受一个论点。

    function showLayerUpLoad(ctrlid)
    {
    myctrl = document.getElementById(ctrlid); //now you have a reference to your control
    
    alert(myctrl.value); //assuming its a hidden field  control with some value in it.
    }
    

    在您的代码中处理数据列表的项目数据绑定事件:

     Sub Item_Bound(sender As Object, e As DataListItemEventArgs) Handles DataList1.ItemDataBound
    
         If e.Item.ItemType = ListItemType.Item Or _
             e.Item.ItemType = ListItemType.AlternatingItem Then
    
    
            'Retrieve the hidden control in the current DataListItem.
            Dim hf As HiddenField = _
                CType(e.Item.FindControl("YourHiddenFieldID"), HiddenField)
    
       'Retrieve the link button in the current DataListItem.
            Dim lb As Hidden Field = _
                CType(e.Item.FindControl("YourLinkButtonID"), LinkButton)
    
            lb.OnClientClick = string.Format("javascript:ShowLayerUpLoad('{0}')", hf.ClientID)
    
    
         End If
    
      End Sub
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 2023-04-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      相关资源
      最近更新 更多