我现在在页面里加了个“Repeater”控件
现在怎么在JavaScrip得到“Repeater”控件的选择行。
在“Repeater”控件的<ItemTemplate>里面加了个<input id="Button_3"  type="button" value="编辑"  />按钮。我想点击该按钮触发一个JavaScrip方法得到该行的信息。在JavaScrip里面用AJAX处理。请大家帮帮忙,原程序如下:
</HeaderTemplate><ItemTemplate>
    <tr>
        <td colspan="5" style="height: 21px">
           <b> <a href="Default.aspx?smallid=<%#Eval("vCurriculum_Id") %>" style="border-color:Blue" >
<%# DataBinder.Eval(Container.DataItem, "vTitle")%></b>
</a></td>
<td style="background-color:#BAB9BA">    <input id="Button_3" style="left: 2px; position: relative; top: 3px" type="button"
        value="编辑"  /></td>
<td style="background-color:#BAB9BA"><font color="red">删除</font></td>    </tr>
    <tr>        <td colspan="7">
            <a  href="Default.aspx?smallid=<%#Eval("vCurriculum_Id") %>" >
<%# DataBinder.Eval(Container.DataItem, "tContent")%>
</a></td>
    </tr>
    <tr>
        <td style="width: 100px">
        </td>
        <td style="width: 100px">
        </td>
        <td style="width: 100px">
        </td>
        <td style="width: 100px">
        </td>
        <td style="width: 100px ">
            发布时间:<a><%# DataBinder.Eval(Container.DataItem, "dTime")%> </a></td>
        <td style="width: 100px">
            阅读(<%# DataBinder.Eval(Container.DataItem, "iClickNumber")%>)次</td>
        <td style="width: 63px">
            <span style="text-decoration: underline">下载附件</span></td>
    </tr></ItemTemplate>
<AlternatingItemTemplate>
    <tr>
        <td colspan="5" style="height: 21px">
            <span style="text-decoration: underline"><b><a href="Default.aspx?smallid=<%#Eval("vCurriculum_Id") %>" >
<%# DataBinder.Eval(Container.DataItem, "vTitle")%>
</a></b></span></td>
<td style="background-color:#BAB9BA">   <input id="Button_3" style="left: 2px; position: relative; top: 3px" type="button"
        value="编辑"  /></td>
<td style="background-color:#BAB9BA"><font color="red">删除</font></td>    </tr>
    <tr>
        <td colspan="7">
            <a href="Default.aspx?smallid=<%#Eval("vCurriculum_Id") %>" >
<%# DataBinder.Eval(Container.DataItem, "tContent")%>
</a></td>
    </tr>
    <tr>
        <td style="width: 100px">
        </td>
        <td style="width: 100px">
        </td>
        <td style="width: 100px">
        </td>
        <td style="width: 100px">
        </td>
        <td style="width: 100px">
            发布时间:<%# DataBinder.Eval(Container.DataItem, "dTime")%></td>
        <td style="width: 100px">
            阅读(<%# DataBinder.Eval(Container.DataItem, "iClickNumber")%>)次</td>
        <td style="width: 63px">
            <span style="text-decoration: underline">下载附件</span></td>
    </tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
    </asp:Repeater>

解决方案 »

  1.   

    如果你对ajax\js程序开发不熟练的话 
    推荐你用ASP.NET AJAX 或者Magic AJAX那样只用一个updatepanel就搞定了
      

  2.   

    或者在JavaScrip里调用“Repeater”控件的ItemCommand事件也行.
      

  3.   

    ASP.NET AJAX 速度太慢了..不好用..
      

  4.   

    http://www.aspnet168.com.cn/
    或许能找到你感兴趣的问题
      

  5.   

    <input id="Button_3" type="button" value="编辑" />
    可否变成服务器控件????
    <input id="Button_3" runat="server" onclientclick="myjavascript(this);" type="button" value="编辑" />
    这时,this就能得到当前行的ID
    再把TR变成服务器控件,加一个ID,用Button_3的ID,就能得到TR的ID,就可以控制行了.
      

  6.   

    如果你能理解控件的工作原理!我像无论什么样的你都可以写!空间呈现的结果是html只要有ID都可以用javascript获取
      

  7.   

    回zhq3k(zhq3k):这样做可以吗?回去试下..
      

  8.   

    回webee2005(远景):但是我用的是微软的"Repeater"控件,里面封装了JS脚本.而且获得HTML,不可以动态的控制..
      

  9.   

    最好看看客户端生成的HTML,再写js
      

  10.   

    <input id="Button_3" type="button" value="编辑" onclick="TaskEdit(this)"/>    <script type="text/jscript">
        function TaskEdit(obj)
        {
            var tdObj = obj.parentNode; // 回到td标记
            var trObj = tdObj.parentNode; // 回到tr标记
            for( int i=0; i< trObj.childNodes.length; i++)
            {
                // 遍历整行的所有td内的标记,取得属性
            }
        }
        </script>以上只是提出了一种假设,可供参考,具体我也没有调试过。
      

  11.   

    基本用法就是 lizhengjun555 的方式,但是,你的 table 格式复杂,要注意 行 和 列 的关系
      

  12.   

    最好看看客户端生成的HTML,再写js
    repeater控件中的label控件客户端id可以拼出来的,但是规则不一定和webconfig的一个xmlcurren什么的配置有关,忘了,连接字符串可能是$,:什么的.
      

  13.   

    谢谢大家了,这一块还是不用AJAX算了,确实有点勉强,关于如何在javaScrip中控制ASP.NET控件的问题,以后有时间解决了,我会第一时间发布在我的博客上。http://lem-worm.cnblogs.com/谢谢大家的帮助。散分了。。
      

  14.   

    解决了 
    <script type="text/javascript" language="javascript">
    function on_Chick(obj) 
    {window.alert(obj.name);
    }
    </script><td><input id="Button1" style="position: relative" type="button" value="锁定" name='<%# Eval("vUserId") %>'  onclick="on_Chick(this)"/></td>给这个Button的name属性绑定数据源,该行的ID。
    点击该按钮就可以得到该行的ID了。
    :)