none
Visual Web Developer Express的design mode顯示ASP:Table control為什麼那麼"高拐"? RRS feed

  • 問題

  •       <asp:Table ID="Table1" runat="server">
            <asp:TableRow>
              <asp:TableCell>
                <asp:GridView ID="gridCat0" runat="server" AutoGenerateColumns="False"
                  DataKeyNames="id" DataSourceID="dsrcBizCat0" OnSelectedIndexChanged="gridCat0_SelectedIndexChanged">
                  <Columns>
                    <asp:BoundField DataField="name" HeaderText="主分類" SortExpression="name" />
                    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True"
                      ShowSelectButton="True" ButtonType="Button" EditText="修改名稱"
                      SelectText="顯示次分類" />
                  </Columns>
                </asp:GridView>
                <asp:TextBox ID="txtNewCat0" runat="server"></asp:TextBox><asp:Button
                  ID="btnNewCat0" runat="server" OnClick="btnNewCat0_Click"
                  Text="新增" />
              </asp:TableCell>
              <asp:TableCell VerticalAlign="Top">
                <asp:GridView ID="gridCat" runat="server" AutoGenerateColumns="False"
                  DataKeyNames="id" DataSourceID="dsrcBizCat" EmptyDataText="沒有次分類">
                  <Columns>
                    <asp:BoundField DataField="name" HeaderText="次分類" SortExpression="name" />
                    <asp:CommandField ButtonType="Button" EditText="修改名稱"
                      ShowDeleteButton="True" ShowEditButton="True" />
                  </Columns>
                </asp:GridView>
                <asp:TextBox ID="txtNewCat" runat="server"></asp:TextBox><asp:Button
                  ID="btnNewCat" runat="server" OnClick="btnNewCat_Click"
                  Text="新增" />
              </asp:TableCell></asp:TableRow>
          </asp:Table>

    上面的ASP.NET page content,在VWD的design模式下看起來是:


    (不知道這邊能不能秀圖,不行的話請看這裡

    奇怪,上面的GridView都秀不出來,而且滑鼠只選得到table,無法選到裡面的其他control以設定其properties。

    雖然執行起來是正常的,但開發時很不方便。是我弄錯了什麼嗎?還是VWD設計本就是如此?

    2006年8月22日 上午 03:42

解答

  • 我照著您的Code做了一下,的確有無法顯示GridView的問題,

    應該是Control的問題,跟版本無關(因為我用Team Suite版本也一樣),

    不過實際上Run起來是OK的。

     

    以下是我的想法:

    Table在RunTime的時候才會去動態產生對應的HTML Code,可是在DesignTime,它是去Load Designer,

    解析HTML的Tag,然後動態轉換成Design時所看到的控制項。

    為什麼會看不到GridView?可能是Designer無法解析在Table下內的Table Schema

    (您用Html的Table或是DataList、FormView去試,可以發現在DesignTime都無法看到,

    前面的那些控制項在實際的網頁原始碼都是table Schema),至於是不是設計不良或Bug,不得而知。

     

    2006年8月22日 上午 08:44
    版主

所有回覆

  • 我開發都是用HTML的Table(比較好控制),供您參考。

     

    2006年8月22日 上午 04:36
    版主
  • 因為某個cell要動態控制其visibility

    否則也不會自找麻煩呀 /_\

     LOLOTA 寫信:

    我開發都是用HTML的Table(比較好控制),供您參考。

     

    2006年8月22日 上午 05:43
  • 試看看改用HTML的table,並且把它改成ServerControl(按右鍵選Run as Server Control),

    然後使用CType(TABLE1.Rows(1).Cells(1), HtmlTableCell).Visible = False去讓Cell消失囉。

     

    2006年8月22日 上午 05:57
    版主
  • 謝謝

    我只是想知道是不是我操作失當或設定錯誤

    如果不是的話 那這個問題說是VWD的設計不良或bug 似乎也不為過?

     LOLOTA 寫信:

    試看看改用HTML的table,並且把它改成ServerControl(按右鍵選Run as Server Control),

    然後使用CType(TABLE1.Rows(1).Cells(1), HtmlTableCell).Visible = False去讓Cell消失囉。

     

    2006年8月22日 上午 07:16
  • 我照著您的Code做了一下,的確有無法顯示GridView的問題,

    應該是Control的問題,跟版本無關(因為我用Team Suite版本也一樣),

    不過實際上Run起來是OK的。

     

    以下是我的想法:

    Table在RunTime的時候才會去動態產生對應的HTML Code,可是在DesignTime,它是去Load Designer,

    解析HTML的Tag,然後動態轉換成Design時所看到的控制項。

    為什麼會看不到GridView?可能是Designer無法解析在Table下內的Table Schema

    (您用Html的Table或是DataList、FormView去試,可以發現在DesignTime都無法看到,

    前面的那些控制項在實際的網頁原始碼都是table Schema),至於是不是設計不良或Bug,不得而知。

     

    2006年8月22日 上午 08:44
    版主
  • 各位大大應該都是「有力人士」

    有機會的話可否跟微軟反映一下這個問題

    請他們在更新版改善呢?

     LOLOTA 寫信:

    我照著您的Code做了一下,的確有無法顯示GridView的問題,

    應該是Control的問題,跟版本無關(因為我用Team Suite版本也一樣),

    不過實際上Run起來是OK的。

     

    以下是我的想法:

    Table在RunTime的時候才會去動態產生對應的HTML Code,可是在DesignTime,它是去Load Designer,

    解析HTML的Tag,然後動態轉換成Design時所看到的控制項。

    為什麼會看不到GridView?可能是Designer無法解析在Table下內的Table Schema

    (您用Html的Table或是DataList、FormView去試,可以發現在DesignTime都無法看到,

    前面的那些控制項在實際的網頁原始碼都是table Schema),至於是不是設計不良或Bug,不得而知。

     

    2006年8月22日 上午 09:10