没有在javascript中获得价值

时间:2009-08-17 06:44:16

标签: asp.net javascript vb.net

我有一个datalist并在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 iam在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>

2 个答案:

答案 0 :(得分:1)

对于按钮服务器控件上的OnClientClick属性(ImageButtonLinkButtonButton),您不使用javascript:前缀。因此,请尝试删除所有javascript:内容,看看它是否有效。

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

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

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

答案 1 :(得分:0)

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