javascript - 使用javascript将值从td分配给asp.net hiddenfield

标签 javascript asp.net css vb.net

我遇到了与之前发帖人相同的问题,我需要在页面加载之前设置 session 变量。因为页面加载在我的 gridview.RowCommand 之前触发,所以我尝试使用在下面的文章中找到的这种方法,它结合了隐藏字段的使用。我的最终目标是删除 onRowCommand 事件并使用本文中提供的解决方案。我一直在使用 firebug 来调试我的 javascript,但每次当我查看 this.parent(这是一个 td 而 this.parent 应该是 tr)时,我得到一个错误“未定义”。根据 Firebug ,this.parent.cells[2].textContent 是我获得所需 OID 值的方式。由于我很少花时间编写 javascript,因此非常感谢任何帮助。

来自 JS 的问题代码行

this.parent.cells[2].textContent

我的 GridView

<asp:GridView ID="gridViewOpenOrders" CssClass="gvOpenOrders" runat="server" AutoGenerateColumns="False"
            AllowPaging="True" RowStyle-BorderStyle="None"
            DataKeyNames="AccountNumber,OrderID"
            Width="802px" OnRowCommand="gridViewOpenOrders_RowCommand">
            <Columns>
                <asp:ButtonField Text="Select" HeaderStyle-Width="40px" ItemStyle-CssClass="assignOrderID"/>
                <asp:BoundField DataField="OrderDate" HeaderText="Date" SortExpression="OrderDate"
                    DataFormatString="{0:d}">
                    <HeaderStyle Width="100px" />
                </asp:BoundField>
                <asp:BoundField DataField="OrderID" HeaderText="OID" SortExpression="OrderID">
                    <HeaderStyle Width ="40px" />
                </asp:BoundField>             
            </Columns>
            <HeaderStyle CssClass="ColumnHeaders" />
            <RowStyle CssClass="ColumnRows" />
            <SelectedRowStyle BackColor="#D9D9FF" />
        </asp:GridView>

我的Javascript:

<script type="text/javascript">
    $(document).ready(function() {
        $(".assignOrderID").click(function () {
            var testing = $(".assignOrderID")
            alert(this.parent)
            alert(this.parent.cells[2])
            alert(this.parent.cells[2]).textContent
            document.getElementById('ContentPlaceHolder1_formViewOrder_hiddenFieldOrderID').value = this.parent.cells[2].textContent
            alert('hi2');
        });
    });
</script>

页面加载代码:

Dim t As HiddenField = formViewOrder.FindControl("hiddenFieldOrderID")
Session.Add("OrderID", t.Value)

研究: Setting a session variable before AutoPostBack fires in an asp:Button

最佳答案

首先,您的 HiddenField ClientIdMode 属性应该是 static。然后你可以像这样得到 HiddenField:

HidddenField hdn = this.Page.FindControl("gridViewOpenOrders").FindControl("hiddenFieldOrderID") as HiddenField

关于javascript - 使用javascript将值从td分配给asp.net hiddenfield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11728242/

相关文章:

asp.net - 检测网络请求是否是 <img src =""> 标签的结果

html - 具有水平滚动的图像网格布局

html - 如何防止垂直/水平滚动条在页面加载时闪烁? ( window )

html - 从 FF 中的选择框中删除轮廓

JavaScript:无法让 Modernizr 工作

c# - asp.net中如何更改日期格式

c# - 发送列表时的 '`'字符和RestSharp请求体

javascript - IE7 和 IE8 中 div 高度变化的极其奇怪的行为

javascript - 遵循 url 方案后与 HTML5 Web SQL 的连接丢失

javascript - jQuery keyup 在 IE7 中不起作用