【问题标题】:Not getting value in javascript没有在 javascript 中获得价值
【发布时间】:2009-08-17 06:44:15
【问题描述】:

我有一个数据列表,并且在 itemdatabound 中我调用了 javascript 并传递了一个参数。但我没有在 js 中得到那个参数。

<asp:Button ID="btnUpload" runat="server" cssClass="button1"                                           Text="Upload" >



 <asp:DataList ID="dlView" runat="server" >
    <ItemTemplate>
    <tr>
    <td>  
    <asp:Image ID="imgPlan" runat="server" ImageUrl='<%#GetImage(Eval("ImageName")) %>' />
    </td>
    </tr>
    <tr>
    <td>  
     <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;"/>
      <asp:TextBox ID="txtImage" runat="server" Text='<%#Eval("ImageName") %>'></asp:TextBox>
        <asp:HiddenField ID="hdnImage" runat="server" Value='<%#Eval("ImageName")%>' />

        </td>                                               
    </tr>
    </ItemTemplate>
    </asp:DataList>

在 itemdatabound 我写了以下代码

Protected Sub dlView_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlView.ItemDataBound
        If e.Item.ItemType = ListItemType.Item Or _
        e.Item.ItemType = ListItemType.AlternatingItem Then
            Dim txtImage As TextBox = DirectCast(e.Item.FindControl("txtImage"), TextBox)
            Dim s As String = txtImage.Text
            btnUpload.OnClientClick = String.Format("javascript:UploadImages('{0}')", s)
        End If


    End Sub

以下是我的 javascript fn

function UploadImages(str)
{
alert(str);
}

问题在于 itemdatabound 我在 String.Format("javascript:UploadImages('{0}')", s) 中获取值 但是当点击 btnUpload 时,控件将移动到 js 中的 UploadImages,但 str 中没有值。 可能是什么原因?有人可以帮忙吗?

以下是html结果

<link href="../CSS/PopupDiv.css" rel="stylesheet" type="text/css" /></head>

        <div id="shadow" class="opaqueLayer"> </div>

<div id="question" class="questionLayer">

    <table width="100%" cellpadding="0" cellspacing="0" bgcolor="#F1ECDE">
        <tr style="height:17">
            <td style="background:url(../App_Images/bg/contentlefttop.gif)" width="26" height="17">&nbsp;</td>
            <td style="background:url(../App_Images/bg/contenttop.gif)">&nbsp;</td>
            <td style="background:url(../App_Images/bg/contentrighttop.gif)" width="26" height="17">&nbsp;</td>
        </tr>
        <tr>
            <td style="background:url(../App_Images/bg/contentleft.gif)" width="26">&nbsp;</td>
            <td bgcolor="#FFFFFF">
                <table width="100%" cellpadding="0" cellspacing="0">
                    <tr>
                        <td style="text-align:justify; line-height:18px">
                            <img src="../App_Images/loading.gif" alt="Loading..."/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Please Wait While the Values Load...
                        </td>
                    </tr>
                </table>
            </td>
            <td style="background:url(../App_Images/bg/contentright.gif)" width="26">&nbsp;</td>
        </tr>
        <tr style="height:17">
            <td style="background:url(../App_Images/bg/contentleftbottom.gif)" width="26" height="17">&nbsp;</td>
            <td style="background:url(../App_Images/bg/contentbottom.gif)">&nbsp;</td>
            <td style="background:url(../App_Images/bg/contentrightbottom.gif)" width="26" height="17">&nbsp;</td>
        </tr>
    </table>

</div>

<div id="questionUpLoad" class="questionLayer">

        <table width="100%" cellpadding="0" cellspacing="0" bgcolor="#F1ECDE">
            <tr style="height:17">
                <td style="background:url(../App_Images/bg/contentlefttop.gif)" width="26" height="17">&nbsp;</td>
                <td style="background:url(../App_Images/bg/contenttop.gif)">&nbsp;</td>
                <td style="background:url(../App_Images/bg/contentrighttop.gif)" width="26" height="17">&nbsp;</td>
            </tr>
            <tr>
                <td style="background:url(../App_Images/bg/contentleft.gif)" width="26">&nbsp;</td>
                <td bgcolor="#FFFFFF">
                    <table width="100%" cellpadding="0" cellspacing="0">
                        <tr>
                            <td style="text-align:justify; line-height:18px">
                                <strong> File Name:</strong><br />
                                <span id="spnUpload">
                                    <input type="file" id="flUpload" />
                                </span>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <input type="submit" name="btnUpload" value="Upload" onclick="UploadImages('');" id="btnUpload" class="button1" />
                                &nbsp;
                                <input type="submit" name="btnCancel" value="Cancel" onclick="javascript:hideLayerUpLoad();return false;" id="btnCancel" class="button1" />
                            </td>
                        </tr>
                    </table>
                </td>
                <td style="background:url(../App_Images/bg/contentright.gif)" width="26">&nbsp;</td>
            </tr>
            <tr style="height:17">
                <td style="background:url(../App_Images/bg/contentleftbottom.gif)" width="26" height="17">&nbsp;</td>
                <td style="background:url(../App_Images/bg/contentbottom.gif)">&nbsp;</td>
                <td style="background:url(../App_Images/bg/contentrightbottom.gif)" width="26" height="17">&nbsp;</td>
            </tr>
        </table>

    </div>



<table width="100%" cellpadding="0" cellspacing="0">
 <tr>

 <td rowspan="6" colspan="2" align="left" style="padding-right:5px; width: 125px;" >
<table id="dlView" cellspacing="0" border="0" style="border-collapse:collapse;">
    <tr>
        <td>
<tr>
<td>  
<img id="dlView_ctl00_imgPlan" src="../SiteImages/vidhya/40/1/ThumbNails/abc.jpg" style="border-width:0px;" />
</td>
</tr>
<tr>
<td>  
 <a onclick="javascript:showLayerUpLoad();return  false;" id="dlView_ctl00_lnkChangeLogo" href="javascript:__doPostBack('dlView$ctl00$lnkChangeLogo','')">ChangeLogo</a>
                                                <br />
  <a onclick="javascript:ConfirmChoice();return false;" id="dlView_ctl00_lnkRemoveLogo" href="javascript:__doPostBack('dlView$ctl00$lnkRemoveLogo','')">RemoveLogo</a>
  <input name="dlView$ctl00$txtImage" type="text" value="abc.jpg" id="dlView_ctl00_txtImage" />
    <input type="hidden" name="dlView$ctl00$hdnImage" id="dlView_ctl00_hdnImage" value="abc.jpg" />

    </td>                                               
</tr>
</td>
    </tr><tr>
        <td>
<tr>
<td>  
<img id="dlView_ctl01_imgPlan" src="../SiteImages/vidhya/40/1/ThumbNails/qwe.DIhJfEPC" style="border-width:0px;" />
</td>
</tr>
<tr>
<td>  
 <a onclick="javascript:showLayerUpLoad();return  false;" id="dlView_ctl01_lnkChangeLogo" href="javascript:__doPostBack('dlView$ctl01$lnkChangeLogo','')">ChangeLogo</a>
                                                <br />
  <a onclick="javascript:ConfirmChoice();return false;" id="dlView_ctl01_lnkRemoveLogo" href="javascript:__doPostBack('dlView$ctl01$lnkRemoveLogo','')">RemoveLogo</a>
  <input name="dlView$ctl01$txtImage" type="text" value="qwe.DIhJfEPC" id="dlView_ctl01_txtImage" />
    <input type="hidden" name="dlView$ctl01$hdnImage" id="dlView_ctl01_hdnImage" value="qwe.DIhJfEPC" />

    </td>                                               
</tr>
</td>
    </tr><tr>
        <td>
<tr>
<td>  
<img id="dlView_ctl02_imgPlan" src="../SiteImages/vidhya/40/1/ThumbNails/asd.jpg" style="border-width:0px;" />
</td>
</tr>
<tr>
<td>  
 <a onclick="javascript:showLayerUpLoad();return  false;" id="dlView_ctl02_lnkChangeLogo" href="javascript:__doPostBack('dlView$ctl02$lnkChangeLogo','')">ChangeLogo</a>
                                                <br />
  <a onclick="javascript:ConfirmChoice();return false;" id="dlView_ctl02_lnkRemoveLogo" href="javascript:__doPostBack('dlView$ctl02$lnkRemoveLogo','')">RemoveLogo</a>
  <input name="dlView$ctl02$txtImage" type="text" value="asd.jpg" id="dlView_ctl02_txtImage" />
    <input type="hidden" name="dlView$ctl02$hdnImage" id="dlView_ctl02_hdnImage" value="asd.jpg" />

    </td>                                               
</tr>
</td>
    </tr><tr>
        <td>
<tr>
<td>  
<img id="dlView_ctl03_imgPlan" src="../SiteImages/vidhya/40/1/ThumbNails/vini.jpg" style="border-width:0px;" />
</td>
</tr>
<tr>
<td>  
 <a onclick="javascript:showLayerUpLoad();return  false;" id="dlView_ctl03_lnkChangeLogo" href="javascript:__doPostBack('dlView$ctl03$lnkChangeLogo','')">ChangeLogo</a>
                                                <br />
  <a onclick="javascript:ConfirmChoice();return false;" id="dlView_ctl03_lnkRemoveLogo" href="javascript:__doPostBack('dlView$ctl03$lnkRemoveLogo','')">RemoveLogo</a>
  <input name="dlView$ctl03$txtImage" type="text" value="vini.jpg" id="dlView_ctl03_txtImage" />
    <input type="hidden" name="dlView$ctl03$hdnImage" id="dlView_ctl03_hdnImage" value="vini.jpg" />

    </td>                                               
</tr>
</td>
    </tr><tr>
        <td>
<tr>
<td>  
<img id="dlView_ctl04_imgPlan" src="../SiteImages/vidhya/40/1/ThumbNails/" style="border-width:0px;" />
</td>
</tr>
<tr>
<td>  
 <a onclick="javascript:showLayerUpLoad();return  false;" id="dlView_ctl04_lnkChangeLogo" href="javascript:__doPostBack('dlView$ctl04$lnkChangeLogo','')">ChangeLogo</a>
                                                <br />
  <a onclick="javascript:ConfirmChoice();return false;" id="dlView_ctl04_lnkRemoveLogo" href="javascript:__doPostBack('dlView$ctl04$lnkRemoveLogo','')">RemoveLogo</a>
  <input name="dlView$ctl04$txtImage" type="text" id="dlView_ctl04_txtImage" />
    <input type="hidden" name="dlView$ctl04$hdnImage" id="dlView_ctl04_hdnImage" />

    </td>                                               
</tr>
</td>
    </tr><tr>
        <td>
<tr>
<td>  
<img id="dlView_ctl05_imgPlan" src="../SiteImages/vidhya/40/1/ThumbNails/adf.jpg" style="border-width:0px;" />
</td>
</tr>
<tr>
<td>  
 <a onclick="javascript:showLayerUpLoad();return  false;" id="dlView_ctl05_lnkChangeLogo" href="javascript:__doPostBack('dlView$ctl05$lnkChangeLogo','')">ChangeLogo</a>
                                                <br />
  <a onclick="javascript:ConfirmChoice();return false;" id="dlView_ctl05_lnkRemoveLogo" href="javascript:__doPostBack('dlView$ctl05$lnkRemoveLogo','')">RemoveLogo</a>
  <input name="dlView$ctl05$txtImage" type="text" value="adf.jpg" id="dlView_ctl05_txtImage" />
    <input type="hidden" name="dlView$ctl05$hdnImage" id="dlView_ctl05_hdnImage" value="adf.jpg" />

    </td>                                               
</tr>
</td>
    </tr><tr>
        <td>
<tr>
<td>  
<img id="dlView_ctl06_imgPlan" src="../SiteImages/vidhya/40/1/ThumbNails/" style="border-width:0px;" />
</td>
</tr>
<tr>
<td>  
 <a onclick="javascript:showLayerUpLoad();return  false;" id="dlView_ctl06_lnkChangeLogo" href="javascript:__doPostBack('dlView$ctl06$lnkChangeLogo','')">ChangeLogo</a>
                                                <br />
  <a onclick="javascript:ConfirmChoice();return false;" id="dlView_ctl06_lnkRemoveLogo" href="javascript:__doPostBack('dlView$ctl06$lnkRemoveLogo','')">RemoveLogo</a>
  <input name="dlView$ctl06$txtImage" type="text" id="dlView_ctl06_txtImage" />
    <input type="hidden" name="dlView$ctl06$hdnImage" id="dlView_ctl06_hdnImage" />

    </td>                                               
</tr>
</td>
    </tr><tr>
        <td>
<tr>
<td>  
<img id="dlView_ctl07_imgPlan" src="../SiteImages/vidhya/40/1/ThumbNails/" style="border-width:0px;" />
</td>
</tr>
<tr>
<td>  
 <a onclick="javascript:showLayerUpLoad();return  false;" id="dlView_ctl07_lnkChangeLogo" href="javascript:__doPostBack('dlView$ctl07$lnkChangeLogo','')">ChangeLogo</a>
                                                <br />
  <a onclick="javascript:ConfirmChoice();return false;" id="dlView_ctl07_lnkRemoveLogo" href="javascript:__doPostBack('dlView$ctl07$lnkRemoveLogo','')">RemoveLogo</a>
  <input name="dlView$ctl07$txtImage" type="text" id="dlView_ctl07_txtImage" />
    <input type="hidden" name="dlView$ctl07$hdnImage" id="dlView_ctl07_hdnImage" />

    </td>                                               
</tr>
</td>
    </tr>
</table>
             </td>           
                  </tr>
                 <tr>
                         <td><strong style="color:#ADADAD">URL : </strong><a id="lnkUrl" target="_blank">
                                    <span id="lblUrl"></span>
                                </a></td>
                            </tr>
                        </table>

<div>

    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWIwKerOHHCALt3oXMAwKQ9M/rBQLf8c7OBALF9uAaAtzO1PIKAt/2m70CAvrasL4HAuDf6ooCAtzOwPcIAt/2h0IC5v+70Q0CzITOxQ8C3M6spAcC3/bDxwYCgemdpAkC5+3XyA0C3M6YqQUC3/avzAQClcS6vQkC+8jMiQUC3M6EhgMC3/bL0AoCsK2c6A4ClrLWtAkC3M7wigEC3/b3hwQCnNKn+wQCgte57wYC3M7ctw8C3/bz2g4C3/GapA8CxfbUyAMC3M6I7wgC3/bf3ww=" />
</div></form>
</body>
</html>

【问题讨论】:

  • 为什么将 btnUpload 放在 DataList 控件之外?
  • 当我调用 showlayerupload 一个文件上传控件并弹出 btnUpload 时。单击 btnUpload 时我需要 javascript 中的 ImgPlan 的 ImageUrl
  • 你能显示生成的 HTML 吗?我想看看这个 JS onclick 代码是什么样子的。

标签: asp.net javascript vb.net


【解决方案1】:

对于按钮服务器控件(ImageButtonLinkButtonButton)上的 OnClientClick 属性,您不要使用 javascript: 前缀。所以试着删除你所有的 javascript: 东西,看看它是否有效。

忽略我上面所说的...LinkButton 是一个特例。 :P

我现在仔细看看您的代码和 HTML 输出。据我所知,您的代码中存在一些问题:

  1. 您正在动态更改位于DataList 之外的btnUpload 服务器控件的OnClientClick 属性。这意味着每次将项目绑定到列表时,btnUpload 按钮的 OnClientClick 都会更改,结果是,如果它有效,则数据源中的最后一个 ImageName 将传递给 btnUpload 的 onclick输出 HTML 中的属性。
  2. Eval("ImageName") 似乎仅在从 GetImage() 函数为 imgPlan 调用时才有效。我不太确定为什么会这样。正因为如此,txtImagehdnImage 的 Text 和 Value 没有被填充,这就是你没有在 js 中得到值的原因。

请检查您的代码并将结果告诉我们。 :)

【讨论】:

  • 仍然没有在 str 中获得价值
【解决方案2】:

btnUpload 它位于 datalast 的项目模板之外,因此在 ItemDataBound 处理程序期间为每个项目重写 OnClientClick。显然对于数据源中的最后一项,ImageName 为空/null。将btnUpload 移动到项目模板中,看看是否能改善这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-20
    • 2021-03-28
    • 2016-01-30
    • 2018-04-08
    • 2018-04-09
    • 2012-06-24
    • 1970-01-01
    • 2019-07-03
    相关资源
    最近更新 更多