เป็นไปได้ที่จะเพิ่ม asp: กล่องกาเครื่องหมายควบคุมลงใน TableCell แบบไดนามิกหรือไม่

ในแอปพลิเคชัน .NET ของฉัน ฉันต้องเพิ่มช่องทำเครื่องหมายลงในแต่ละแถวใน asp:Table ที่สร้างขึ้นแบบไดนามิก เป็นไปได้ไหมที่จะทำเช่นนั้นโดยการสร้าง asp:CheckBox สำหรับแต่ละแถวแบบไดนามิกและวางไว้ในวัตถุ TableCell (ในกรณีนี้เป็นอย่างไร?)

หรือฉันต้องแทนที่ตัวควบคุม asp:table ด้วยอย่างอื่น เช่น ตัวควบคุม Repeater หรือ GridView เพื่อให้ทำงานได้

ฉันกำลังมองหาวิธีแก้ปัญหาที่รวดเร็วที่สุดเพราะฉันมีเวลาไม่มาก

ขอบคุณล่วงหน้า!

/อิลวา


person Ylva D    schedule 09.03.2009    source แหล่งที่มา
comment
คุณใช้ asp.net mvc หรือแค่หน้าเว็บ?   -  person TStamper    schedule 09.03.2009
comment
ฉันใช้หน้าเว็บ - และ VB เป็นโค้ดหลังภาษา   -  person Ylva D    schedule 09.03.2009


คำตอบ (2)


คุณไม่ต้องการทำบนฝั่งเซิร์ฟเวอร์ (ใน cs ตามที่ Yossarian กล่าว) เพราะทุกครั้งที่เพจของคุณโหลดซ้ำหรือรีเฟรช คุณจะต้องสร้างช่องทำเครื่องหมายเหล่านั้นขึ้นมาใหม่ ซึ่งจะหมายถึงช่องทำเครื่องหมายใหม่ทุกครั้งที่โหลด ซึ่งหมายความว่าข้อมูลการควบคุมช่องทำเครื่องหมายของคุณจะหายไปเนื่องจากไม่ได้อยู่บนฝั่งไคลเอ็นต์ ดังนั้นข้อมูลที่อัปเดตทั้งหมด ทำโดยผู้ใช้ (ทำเครื่องหมายที่ช่องทำเครื่องหมาย) จะหายไป ดังนั้นคุณจึงต้องการค้นหาว่าสิ่งใดถูกทำเครื่องหมายไว้ เว้นแต่คุณจะเพิ่ม jquery เข้าไป และมันเริ่มซับซ้อนมากขึ้น ดังนั้นจึงต้องเป็น

หากคุณใช้หน้าเว็บ วิธีที่ดีที่สุดคือใช้ asp:Gridview web control และผูกข้อมูลเข้ากับตารางด้วยโค้ดด้านหลังดังนี้:

  Gridview.Datasource=//ex:data; 

  Gridview.Databind();

ดังที่แสดงในตัวอย่างในหน้านี้ ที่นี่

แต่ถ้าคุณใช้ MVC คุณจะต้องเพิ่มมันลงในรหัสไคลเอนต์ในรูปแบบดังนี้:

      <% using (Html.BeginForm("Presentation", "Home")) %>
        <% { %>
  <table id="Table" class="color" width="100%" border="1"> 
<colgroup width="3%" ></colgroup>
<colgroup width="15%"></colgroup>
<colgroup width="20%"></colgroup>
<colgroup width="15%"></colgroup>
<colgroup width="47%"></colgroup>
<thead>
    <tr class="dxgvHeader_Glass"> 
         <th id="CheckBox" class="style1" ><input type="checkbox" class="selectall" id="selectall" name="CheckBox" /></th>

         <th id="DateTime"  runat="server"></th>  
         <th id="Description" runat="server"></th>
    </tr>
</thead> 
<tbody >
<%try
  { %>
   <% foreach (var SamAuditLog in ViewData.Model)
      { %>
        <tr>

            <td class="style1" align="center"><%=Html.CheckBox(""+data.ID) %></td>


             <td><%= data.DateTime%></td>
             <td><%= data.Description%></td>
        </tr>
    <% } %>      

 <%} %>

</tbody>

person TStamper    schedule 09.03.2009

ใน aspx:

<asp:Table id=T1 runat=server />

in cs:

TableCell tc;
foreach(TableRow tr in T1.Rows)
{
    tr.Cells.Add(tc = new TableCell());
    ((IParserAccessor)tc).AddParsedSubObject(new CheckBox());
}
person nothrow    schedule 09.03.2009