HTML SelectBox 查看 Salesforce 对象数据

HTML SelectBox view Salesforce Object data

我是 SalesForce 的新手,我正在使用 HTML VisualForce 页面,因为它比 Apex 更灵活地设计页面。

现在我一直无法将 SalesForce 对象数据输入到 ID 为“Lop”的 HTML SelectBox。

这是我的 VisualForce 代码,这是我使用 HTML 和 CSS 进行设计的地方:

<apex:page docType="html-5.0" controller="ThemMoiController">
    <!-- CSS -->
    <style>
        table{
            border:1px solid black;
        }
        td{
            text-align: middle
        }
        #NgaySinh, #ThemMoi{
            box-sizing: border-box;
            min-width: 10px;
            max-width: 100%;
            width: 100%;
        }
    </style>
    
    <!-- HTML -->
    <table>
        <tr>
            <td>
                <u>Quay lại</u>
            </td>
        </tr>
        <tr/>
        <tr>
            <td/>
            <td>Họ</td>
            <td>
                <input id="Ho" type="text" value="{!hoVal}"/>
            </td>
        </tr>
        <tr>
            <td/>
            <td>Tên</td>
            <td>
                <input id="Ten" type="text" value="{!tenVal}"/>
            </td>
        </tr>
        <tr>
            <td/>
            <td>Giới tính</td>
            <td>
                <input id="GioiTinh" type="checkbox" value="{!gioitinhVal}"/>
            </td>
        </tr>
        <tr>
            <td/>
            <td>Ngày sinh</td>
            <td>
                <input id="NgaySinh" type="date" value="{!ngaysinhVal}"/>
            </td>
        </tr>
        <tr>
            <td/>
            <td>Điểm 1</td>
            <td>
                <input id="Diem1" type="text" value="{!diem1Val}"/>
            </td>
        </tr>
        <tr>
            <td/>
            <td>Điểm 2</td>
            <td>
                <input id="Diem2" type="text" value="{!diem2Val}"/>
            </td>
        </tr>
        <tr>
            <td/>
            <td>Điểm 3</td>
            <td>
                <input id="Diem3" type="text" value="{!diem3Val}"/>
            </td>
        </tr>
        <tr>
            <td/>
            <td>Lớp</td>
            <td>
                <select id="Lop"/>
            </td>
        </tr>
        <tr/><tr/>
        <tr>
            <td/><td/>
            <td>
                <button id="ThemMoi" type="button">Thêm mới</button>
            </td>
        </tr>
    </table>
</apex:page>

这是我的控制器 Apex 代码:

public class ThemMoiController {
    public string hoVal { get; set; }
    public string tenVal { get; set; }
    public boolean gioitinhVal { get; set; }
    public date ngaysinhVal { get; set; }
    public double diem1Val { get; set; }
    public double diem2Val { get; set; }
    public double diem3Val { get; set; }
    
    public void doInsert(){
        HOCSINH__c hs = new HOCSINH__c();
        hs.HO__c = hoVal;
    }
}

非常感谢您的帮助。

-> 使用 getter setter 创建新的 sobject 变量并在构造函数中初始化此变量。

-> 然后在 vf 中使用这个 sobject 变量来输入来自用户的字段值。

-> 更新 doInsert 方法以创建新记录。

Apex 控制器:

public class ThemMoiController {
    public string hoVal { get; set; }
    public string tenVal { get; set; }
    public boolean gioitinhVal { get; set; }
    public date ngaysinhVal { get; set; }
    public double diem1Val { get; set; }
    public double diem2Val { get; set; }
    public double diem3Val { get; set; }

    public HOCSINH__c hs { get; set; }
    
    public ThemMoiController(){
        hs = new HOCSINH__c();
    }

    public void doInsert(){
        insert hs;
        system.debug('---->'+hs);
    }
}

VF 页面:

    <apex:page docType="html-5.0" controller="ThemMoiController">
        <!-- CSS -->
        <style>
            table{
                border:1px solid black;
            }
            td{
                text-align: middle
            }
            #NgaySinh, #ThemMoi{
                box-sizing: border-box;
                min-width: 10px;
                max-width: 100%;
                width: 100%;
            }
        </style>
        <apex:form>
        <!-- HTML -->
        <table>
            <tr>
                <td>
                    <u>Quay lại</u>
                </td>
            </tr>
            <tr>
                <td>name</td>
                <td>
                    <apex:inputField value="{!hs.name}"/>
                </td>
            </tr>
            <tr>
                <td>Họ</td>
                <td>
                    <apex:inputField id="Ho" value="{!hs.HO__c}"/>
                </td>
            </tr>
            <tr>
                <td>
                  
                    <apex:commandButton action="{!doInsert}" value="Thêm mới" />
                </td>
            </tr>
        </table>
        </apex:form>
    </apex:page>

-> 当我们点击 'Thêm mới' 按钮时,将在 HOCSINH__c 对象中创建一条新记录。

您可以创建一个变量,它将成为 lop 对象的列表。

然后在构造函数中使用 soql 查询获取要在 select 下拉列表中显示的 lop 对象的所有记录,并将 soql 查询的结果分配给上述变量,即 lop sobject 列表。

然后创建 getter 方法,如下所述,该方法将 return select 选项列表 class。将下拉值放入 lop 变量列表中的 selectOption 变量列表中。

public List<SelectOption> getItems() {
     List<SelectOption> options = new List<SelectOption>();
     options.add(new SelectOption('US','US'));
     options.add(new SelectOption('CANADA','Canada'));
     options.add(new SelectOption('MEXICO','Mexico'));
     return options;
 } 

使用以下代码在 VF 页面上实现 select 功能。

<apex:form>
        <apex:selectList value="{!variableToStoreSelectedValue}" multiselect="true">
            <apex:selectOptions value="{!items}"/>
        </apex:selectList><p/>
</apex:form>

转到文档 link 了解更多详细信息:https://developer.salesforce.com/docs/atlas.en-us.234.0.pages.meta/pages/pages_compref_selectList.htm