0

ページをロードする前にセッション変数を設定する必要がある以前のポスターと同じ問題があります。pageload は gridview.RowCommand の前に発生するため、hiddenfield の使用を組み込んだ以下の記事にあるこのメソッドを使用しようとしています。最終的な目標は、onRowCommand イベントを削除し、この記事で紹介したソリューションを使用することです。私はjavascriptをデバッグするためにfirebugを使用していますが、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)

調査: asp:Button で AutoPostBack が起動する前にセッション変数を設定する

4

1 に答える 1

0

まず、HiddenFieldClientIdModeプロパティを にする必要がありますstatic。次に、次のように HiddenField を取得できます。

HidddenField hdn = this.Page.FindControl("gridViewOpenOrders").FindControl("hiddenFieldOrderID") as HiddenField
于 2012-07-30T19:37:51.283 に答える