0

現在Ajax Timer、数秒ごとに関数を実行するがあります。からデータを取得しようとするまでは、完全に正常に機能していますDataTable。理由はわかりません。デバッグしてみました。確認するためにページにラベルを貼っています。

たとえばAjax Timer

Protected Sub Timer1_Tick(sender As Object, e As System.EventArgs) Handles Timer1.Tick

    Label1.Text = DateTime.Now.ToLongTimeString()

End Sub

データリスト(問題を与えるもの):

Protected Sub dlOrgProfile_ItemCreated(sender As Object, e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlOrgProfile.ItemCreated
    Dim bizLayerMgmt As BlOrganizations
    Dim dt As DataTable

    bizLayerMgmt = New BlOrganizations()
    dt = bizLayerMgmt.getOrgDetails(userId).Tables(0)

    ddl = CType(e.Item.FindControl("ddlCoType"), DropDownList)
    Dim value As Integer = Convert.ToInt32(dt.Rows(0)(3)) 'I have narrowed the problem to this line, if I comment this line.. everything works perfectly
    ddl.SelectedValue = value
End Sub

問題はdt.Rows(0)(3)にあります。理由はわかりません。データベースからデータを取得するために使用する必要があります。

フロントエンド側の場合に備えて..サイトのマークアップは次のとおりです。

<div class="content">
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:Timer ID="Timer1" runat="server" Interval="1000">
            </asp:Timer>
            <asp:DataList ID="dlOrgProfile" runat="server" DataSourceID="odsOrgDetails" 
                EnableTheming="True" RepeatLayout="Flow" ShowFooter="False" ShowHeader="False">
                <ItemTemplate>
                    <h3>
                        <asp:TextBox ID="txBxCoName" runat="server" Text='<%# Eval("OrgName") %>'></asp:TextBox>

                        <div class="ddlSelect">
                            <asp:DropDownList ID="ddlCoType" runat="server" DataSource='<%# listOrgType() %>' DataTextField="OrganizationType" DataValueField="OrgTypeID" >
                            </asp:DropDownList>
                        </div>

                        <h3>
                        </h3>
                        <a id="linkCoImg" href="upload_co_logo.aspx">
                        <asp:Image ID="CoImg" runat="server" ImageUrl="~/logo/org/default.png" />
                        <span>Change</span> </a>
                        <br />
                        <div id="description">
                            <textarea id="taCoDesc" rows="2" cols="1"><%# Eval("Description") %></textarea>
                        </div>
                        <br />
                        <asp:Label ID="lblContacts" runat="server" Text="Contacts:"></asp:Label>
                        <br />
                        <div id="contacts">
                            <asp:TextBox ID="tbContactOffice" runat="server" CssClass="tbContacts"></asp:TextBox>
                            <asp:TextBox ID="tbContactFax" runat="server" CssClass="tbContacts"></asp:TextBox>
                            <asp:TextBox ID="tbContactMail" runat="server" CssClass="tbContacts2"></asp:TextBox>
                        </div>
                        <br />
                        <asp:Button ID="btnSave" runat="server" CommandArgument='<%# Eval("OrgID") %>' 
                            CommandName="save" Text="Save" />

                    </h3>

                </ItemTemplate>
            </asp:DataList>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
            </Triggers>
            <ContentTemplate>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            </ContentTemplate>
            </asp:UpdatePanel>
        </div>
4

1 に答える 1

0

さて、私は自分の問題を解決しました。それでも理由はわかりませんが、これが私がしたことです。ItemCreatedを使用する代わりに、ItemDataBoundを使用しました。

Protected Sub dlOrgProfile_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlOrgProfile.ItemDataBound
    Dim bizLayerMgmt As BlOrganizations
    Dim dt As DataTable

    bizLayerMgmt = New BlOrganizations()
    dt = bizLayerMgmt.getOrgDetails(userId).Tables(0)

    ddl = CType(e.Item.FindControl("ddlCoType"), DropDownList)
    Dim value As Integer = Convert.ToInt32(dt.Rows(0)(3))
    ddl.SelectedValue = value
End Sub
于 2012-07-07T10:16:23.597 に答える