สมมติว่ารายการและ ItemTypes มีคีย์หลักที่เป็นตัวเลข ItemID และ ItemTypeID แต่ละรายการจะได้รับการกำหนดประเภทรายการ
ฉันมี JQGrid เพื่อแก้ไขรายการ เมื่อไม่อยู่ในโหมดแก้ไข ฉันต้องการเห็นชื่อของ ItemType ไม่ใช่ ItemTypeID:
TYPE | TITLE -----------+-------------------- Category A | Item 1 Category A | Item 2 Category B | Item 3 Category B | Item 4
ในโหมดแก้ไข ฉันต้องการดูดรอปดาวน์ที่แสดงข้อความ ItemType แต่จะส่งคืน ItemTypeID ไปยังเซิร์ฟเวอร์
นี่คือสิ่งที่ฉันมีจนถึงตอนนี้ (โดยใช้ ASP.NET wrapper สำหรับ JQGrid):
<trirand:jqgrid id="Grid1" runat="server" ... >
<columns>
<trirand:jqgridcolumn datafield="ItemID" editable="false" visible="false" width="50" primarykey="true" />
<trirand:jqgridcolumn datafield="ItemTypeID" editable="true" edittype="DropDown" editorcontrolid="ItemTypes" />
<trirand:jqgridcolumn datafield="Title" editable="true" sortable="true" />
...
</columns>
</trirand:jqgrid>
<asp:sqldatasource runat="server" id="ItemTypesDatasource" connectionstring="<%$ ConnectionStrings:Main %>" selectcommand="Select ItemTypeID,Title from ItemTypes order by Title" />
<asp:dropdownlist runat="server" id="ItemTypes" datasourceid="ItemTypesDatasource" datavaluefield="ItemTypeID" datatextfield="Title" />
ปัญหาคือเมื่อไม่อยู่ในโหมดแก้ไข ระบบจะแสดง ItemTypeID ที่เป็นตัวเลข แทนที่จะเป็นป้ายกำกับข้อความ:
TYPE | TITLE -----------+-------------------- 100123 | Item 1 100123 | Item 2 100124 | Item 3 100124 | Item 4
มีวิธีใดบ้างที่จะให้ JQGrid เคารพความแตกต่างระหว่าง DataValueField และ DataTextField (ไม่ว่าจะใช้ jQuery API หรือปลั๊กอิน ASP.NET)