我有一个ASPX页面,它是处理设计和代码背后的Web表单。有人告诉我,我在这个页面中的所有类都需要分解成自己的文件。这些文件需要与类名相同。我的ASPX文件是default.aspx,我的类是GetMachineInfo.cs。如何在我的ASPX文件中调用该cs文件,以便它就像我的类在ASPX页面内。如果需要,我会插入一些代码。我删除了一些代码,以便专注于实际问题。如果有一个花括号丢失或其中的东西因为那个。只是想为这个具体问题提供必要的信息。欢呼声。
namespace PVDA.Web
{
/*
* LINQ Queries for binding
* This is calling the wrong information
* It's calling the n attribute of "srn", not the mach "n"
* This is going a layer too deep. needs to be mach no srn
*/
public class Machine
{
// Getting all the objects to the machine
public int snsrN { get; set; }
public string calctype { get; set; }
public string sensName { get; set; }
public static List<Machine> GetMachineInfo(XDocument xDoc, int machineNumber)
{
return xDoc.XPathSelectElements("./mmsdata/mill/mach")
.Where(x => x.Attribute("n").Value == machineNumber.ToString())
.Elements()
.Select(x => new Machine
{
sensName = x.Value,
snsrN = Convert.ToInt32(x.Attribute("n").Value),
calctype = x.Attribute("calctype").Value
}).ToList();
}
}
}
&#13;
namespace PVDA.Web
{
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Calling
ddlBinding();
NewQuery();
}
}
public void ddlBinding()
{
// Getting the XML file imported in
const string FILE_PATH = @"MillData.xml";
// Set the file path
XDocument xDoc = XDocument.Load(Server.MapPath(FILE_PATH));
Machine machine = new Machine();
// Setting a variable to bind the data into the dropdownlists
var dropDownDataList1 = GetMillInfo(xDoc, "n");
var dropDownDataList2 = machine.GetMachineInfo(xDoc, 2);
// Bind Machines to DropDownList2
DropDownList2.DataSource = machine.GetMachineInfo(xDoc, 2);
// Set text / value properties
DropDownList2.DataTextField = "snsrN";
DropDownList2.DataValueField = "sensName";
// Bind the contents to be reflected in the UI
DropDownList2.DataBind();
}
&#13;
答案 0 :(得分:4)
如果您的GetMachineInfo()
方法在与表单相同的命名空间中定义(即PVDA.Web),您应该能够按预期调用它,但是需要在类中定义方法而不是直接在命名空间下。
因此,您可能需要考虑将它们标记为static
,以允许在不显式实例化您的类实例的情况下调用它们:
public class Machine
{
public static List<Machine> GetMachineInfo(XDocument xDoc, int machineNumber)
{
// Omitted for brevity
}
}
这样您就可以通过Machine.GetMachineInfo(...)
在整个应用程序中调用此方法,您可以在应用程序的任何页面中执行此操作:
// Within your ddlBinding() method
DropDownList2.DataSource = Machine.GetMachineInfo(xDoc, 2);
答案 1 :(得分:0)
为类创建单独的.cs文件。最佳做法是使文件名和类名相同。它很容易跟踪,如果你想修改任何功能,你可以转到文件并修改。
class CLS = new class();