2022年9月22日 星期四

[研究]Visual Studio 2022 Web Live Preview「設計」畫面:建立控制項時發生錯誤 - asp:LinkButton

[研究]Visual Studio 2022 Web Live Preview「設計」畫面:建立控制項時發生錯誤 - asp:LinkButton

2022-09-22

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C#

********************************************************************************

問題:Visual Studio「設計」畫面出現錯誤


建立控制項時發生錯誤 - asp:LinkButton

重複的元件名稱 'LinkButton1'。元件名稱必須是唯一而且不區分大小寫。



********************************************************************************

說明

如果方案是以前用 Visual Studio 2019 建立的 ASP.NET WebForms ( .NET Framework) 專案,在 GridView 或 DetailsView 控制項產生的程式碼,在不同的 ItemTemplate 中,相同控制項會重新編號,所以InsertItemTemplate 和 ItemTemplate 中若有 LinkButton,都是從 1 開始編號,類似如下:


<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="500px"
        DefaultMode="Insert" Caption="新增" Visible="False" 
        CssClass="table table-striped table-bordered table-hover table-responsive" 
        AutoGenerateRows="True" DataKeyNames="AboutYearID" DataSourceID="SqlDataSource1">
        <Fields>
            <asp:TemplateField ShowHeader="False">
                <InsertItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Insert" Text="插入" CssClass="btn btn-primary btn-xs"></asp:LinkButton>
                    &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="取消" CssClass="btn btn-warning btn-xs"></asp:LinkButton>
                </InsertItemTemplate>
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="New" Text="新增" CssClass="btn btn-primary btn-xs"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Fields>
    </asp:DetailsView>

但對於 Visual Studio 2022 v17.2.x 或 v17.3.x 新提供的 Live Web Preview「設計」畫面,這種命名方式是不可以的。 ( 但若不切換「設計」畫面使用,直接編譯執行芿是正常的。)

********************************************************************************

解決

把同名的 LinkButton1,改成不同名稱即可。 

(完)

相關

[研究]Visual Studio 2022 Web Live Preview「設計」畫面:建立控制項時發生錯誤 - asp:LinkButton
https://shaurong.blogspot.com/2022/09/visual-studio-2022-live-web-preview.html

[研究]Visual Studio 2019「設計」畫面是否使用Web Live Preview測試https://shaurong.blogspot.com/2022/08/visual-studio-2019web-live-preview.html

[研究]Visual Studio 2019「設計」畫面是否使用Web Live Preview測試https://www.blogger.com/blog/post/preview/3479310643037793626/3656341022779727829

[研究]Visual Studio 2022 v17.3.0 移除 Web Live Preview (「設計」畫面)
https://shaurong.blogspot.com/2022/08/visual-studio-2022-v1730-web-live_12.html

[研究]Visual Studio 2022 v17.3.0 啟用 Web Live Preview (「設計」畫面)
https://shaurong.blogspot.com/2022/08/visual-studio-2022-v1730-web-live.html

沒有留言:

張貼留言