编程语言
首页 > 编程语言> > c# – 我是否在正确的轨道上(ASPX,ascx,设计)

c# – 我是否在正确的轨道上(ASPX,ascx,设计)

作者:互联网

我有几个网页,这些网页中的每一个都或多或少相同.他们每个人都有一个顶部的员工部分.下一部分是客户部分,之后的部分是先前的订单.这两个并非在所有页面上都是必需的.最后一部分是评论(博客).

我开始有2页,没问题.我为每个页面编写了相同的(复制粘贴)代码(给出或采取一些细节).销售给这个客户带来了(诱饵)并且客户感到饥饿..更多更多…现在我有10个页面或多或少相同的代码.

现在我想我可以通过重复使用相同的“控件”来减少开发时间.所以开始做一些ascx(4),认为我可以在每个页面(员工,客户,销售,博客)重用这4个控件.

我遇到了一个小抓举,谷歌告诉我 – “不,不,不,你不是如何使用ascx”. ascx只是一个新的“asp:label”/“asp:textbox”,可能还有一些额外的逻辑.

抢夺 – 我用4个控件中的每个控件创建了一个NewTest.aspx,但是我没有从控件中看到asp:formview / asp:detailsview等.我可以在形式视图中放置“hello worlds”,就在之前,之后 – 但不在< formview>< / formview>内.

哪里出错了,我需要重新考虑什么?

NewTest.aspx

    <table width="800">
        <tr>
            <td>
                <IIT:EmployeeRecord ID="test1" runat="server" />
            </td>
        </tr>
     </table>

我使用ObjectDataSource并从Session中提取员工ID.员工记录 – 他的名字,带有他的zipcodes的下拉列表(仅限salesrep)和搜索字段.基本上是一个带有一些额外逻辑的文本框.

所有底层逻辑(BLL,DAL,模型等)都完全相同.项目的其余部分编译和运行与我开始使用ascx之前完全相同.

编辑:我正在努力尝试KSS,如果我可以让EmployeeRecord显示,那么我可以复制粘贴这个想法.

从webconfig开始:

<pages>
<controls>
    <add tagPrefix="IIT" tagName="Comments" src="~/DynamicData/FieldTemplates/Comments.ascx" />
    <add tagPrefix="IIT" tagName="OrderRecord" src="~/DynamicData/FieldTemplates/OrderRecord.ascx" />
    <add tagPrefix="IIT" tagName="CustomerRecord" src="~/DynamicData/FieldTemplates/CustomerRecord.ascx" />
    <add tagPrefix="IIT" tagName="EmployeeRecord" src="~/DynamicData/FieldTemplates/EmployeeRecord.ascx" />
  </controls>
</pages>

Intellisense可以识别EmployeeRecord和OrderRecord,但不能识别Comments和CustomerRecord.编辑:智能感知现在可以识别它们.

EmployeeRecord

<asp:formview ID="fv_empDetail" runat="server" datasourceID="ods_empDetail">
<itemtemplate>
<table>
    <tr>
        <td>
        Medarbejder:
        </td>
    <td>
<asp:TextBox ID="tbEmployeeName" runat="server" ReadOnly="true" Text='<%# Bind("name") %>' BorderStyle="None"></asp:TextBox>
</td></tr>
</table>
</ItemTemplate>
</asp:FormView>
    <asp:ObjectDataSource ID="ods_empDetail" runat="server" SelectMethod="GetEmployee"
     TypeName="xxxxxx.EmployeeBLL">
     <SelectParameters>
         <asp:SessionParameter Name="employee" DbType="String" SessionField="employee" />
     </SelectParameters>
 </asp:ObjectDataSource>

(任何拼写错误仅供您使用;),实际代码中没有拼写错误)

解决方法:

将MasterPage用于您的项目.如果您认为某些常见特定页面组的信息与其他组无关,那么请对这些特定页面组使用嵌套母版页.

使用嵌套的主页将使您的根母版页保持清晰,并且也将用于其他页面.

您也可以按照@Umar给出的开发用户控制的链接进行操作,或者参考以下内容:

Create ASP.NET user control

My User Control

标签:c,asp-net,ascx
来源: https://codeday.me/bug/20190704/1380262.html