gpt4 book ai didi

asp.net - 在asp.net UserControl 中的控件上设置DataSource?

转载 作者:行者123 更新时间:2023-12-04 02:25:24 26 4
gpt4 key购买 nike

我已经创建了我的第一个 asp.net UserControl,我将在整个应用程序的多个地方使用它。它包含一个 FormView,用于在 DataTable 中显示记录的字段。

一切看起来都很好,除了我不知道如何在 UserControl 内的 FormView 上设置 DataSource。我想在代码隐藏的方法中设置数据源。

我从智能感知中看到 UserControl 没有 DataSource 属性,但它有一个 DataBind 方法。我可以想象,可能需要在 UserControl 内的多个控件上设置不同的 DataSource,因此必须有某种方法可以钻入 UserControl,但我无法弄清楚。

下面是aspx代码:

<%@ Register src="Controls/JobDetail.ascx" tagname="JobDetail" tagprefix="uc1" %>

...
<uc1:JobDetail ID="UserControlJobDetail" runat="server" />
...

这是尝试设置 DataSource 的方法:
public void BindJobRecord(string SelectedJobNo)
{
UserControlJobDetail.DataSource = LMDataClass.GetJob(SelectedJobNo);
UserControlJobDetail.DataBind();
}

这是用户控件:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="JobDetail.ascx.cs" Inherits="DwgDatabase.JobDetail" %>

<asp:FormView ID="fvJobDetail" runat="server" DataKeyNames="job_num">
<ItemTemplate>
<div style="float: left; border-width: 1px;" class="LabelStyle TextBoxStyle" >
<table>
<tr>
<td><asp:label runat="server" ID="lblJobNo" Text='Job No' /></td>
<td><asp:TextBox runat="server" ID="txtJobNo" Text='<%# Eval("job_num") %>' /></td>
</tr>
<tr>
<td><asp:label runat="server" ID="Label2" Text='Customer' /></td>
<td><asp:TextBox runat="server" ID="txtCustNo" Text='<%# Eval("cust_num") %>' /></td>
</tr>
<tr>
<td><asp:label runat="server" ID="Label3" Text='Quote No' /></td>
<td><asp:TextBox runat="server" ID="txtQuoteNo" Text='<%# DataBinder.Eval(Container.DataItem, "quote_no", "{0:00000;;.}") %>' /></td>
</tr>
<tr>
<td><asp:label runat="server" ID="Label4" Text='Po No.' /></td>
<td><asp:TextBox runat="server" ID="TextBox4" Text='<%# Eval("p_o_num") %>' /></td>
</tr>
</table>
</div>
</ItemTemplate>
</asp:FormView>

最佳答案

在用户控件上创建一个属性 DataSource,如下所示:

public object DataSource
{
get
{
return this.fvJobDetail.DataSource;
}
set
{
this.fvJobDetail.DataSource = value;
}
}

对 DataBind() 方法执行相同的操作。

关于asp.net - 在asp.net UserControl 中的控件上设置DataSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/752935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com