0

我有一个 ASP.NET 页面。它创建一个像这样的数据源:

 <asp:ObjectDataSource ID="uxOrderSource" runat="server" SelectMethod="OrdersGetOne" TypeName="Vevo.Domain.DataSources.OrdersDataSource">
 <selectparameters>
     <asp:QueryStringParameter Name="orderID" QueryStringField="OrderID" Type="String" />
 </selectparameters>
 </asp:ObjectDataSource>

然后它在这里使用数据源,如下所示:

 <asp:FormView ID="uxOrderView" runat="server" DataSourceID="uxOrderSource" CssClass="CheckoutCompleteCustomerFormView">

然后它引用该数据源中的电子邮件字段,如下所示:

<%# Eval("Email") %>

我的问题是,在页面上创建此表单之前,我需要将该电子邮件拉出并设置一个脚本变量及其值,以便在迭代订单行项目时使用它。因为对于每个订单行项目(发生在表单创建之前的页面上)我需要调用第三方 API 并发送行项目信息,但该行项目信息也需要电子邮件,并且电子邮件不存在订单行项目数据源。

4

1 回答 1

1

基于此:

我只需要访问数据源中的字段值,而无需在 formview 或 gridview 中使用数据源

最简单的方法是使用以下代码将您的GridViewFormView手动绑定到后面的代码中:

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        this.myGridView.DataSource = this.GetYourDataSourceManually();
        this.myGridView.DataBind();
    }
}

如果你想使用脚本,我认为有两种方法,GridView用你想要的数据渲染,然后使用 JQuery 找到每个已经渲染的元素并用它来调用你的第三方 API

或者..

使用 JQuery 在客户端使用您要使用的数据公开 Web 服务(一个 PageMethod 以使其保持简单)

我的 GitHub 站点上有很多功能示例:

于 2012-10-08T21:57:27.623 回答