上一篇討論了為服務器控件添加客戶端功能,這一篇我們所要講的是控件生成器
1.錯誤的代碼,無法解析
首先來看一段簡單的代碼
正確
<asp:Wizard ID="Wizard1" runat="server">
<WizardSteps>
<asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1">
21212</asp:WizardStep>
<asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2">
</asp:WizardStep>
</WizardSteps>
</asp:Wizard>
錯誤
<asp:Wizard ID="Wizard2" runat="server">
<asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1">
21212</asp:WizardStep>
<asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2">
</asp:WizardStep>
</asp:Wizard>
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label">
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</asp:Label>
<br />
<asp:TextBox ID="TextBox3" runat="server">12345</asp:TextBox>
<br />
<asp:Label ID="Label2" runat="server" Text="Label">12345</asp:Label>
<br />
<br />
<asp:TextBox ID="TextBox1" runat="server">
<asp:Label runat="server" Text="Label"></asp:Label>
</asp:TextBox>
Wizard為asp.net2.0新增的一個控件,這個頁面發生兩個錯誤,如下圖
運行此頁面後則會報錯,出現以下提示
分析器錯誤
這裡有一個問題,.net提供我們控件時,我們已經形成一種定向思維,控件就是那樣寫的,如DropDownList,其中只能是套<asp:ListItem>的,那我為什麼就不能套別的屬性呢?Wizard控件為什麼就要加一個WizardSteps屬性才可以正常運行呢?當我們思考到這裡,我們就該尋找答案.