1
public enum CandidateStatus : int {

    None = 0,

    Invalid = 1,

    [Microsoft.SharePoint.Linq.ChoiceAttribute(Value="Pending Approval")]
    PendingApproval = 2,

    [Microsoft.SharePoint.Linq.ChoiceAttribute(Value="Open")]
    Open = 4,

    [Microsoft.SharePoint.Linq.ChoiceAttribute(Value="Screening")]
    Screening = 8,

    [Microsoft.SharePoint.Linq.ChoiceAttribute(Value="Interviewing")]
    Interviewing = 16,

    [Microsoft.SharePoint.Linq.ChoiceAttribute(Value="Offers Issued")]
    OffersIssued = 32,

    [Microsoft.SharePoint.Linq.ChoiceAttribute(Value="Hired")]
    Hired = 64,

    [Microsoft.SharePoint.Linq.ChoiceAttribute(Value="Cancelled")]
    Cancelled = 128,
}

これは、linq.cs ファイルの列挙型コードです。

ここで CandidateStatus は、Sharepoint リストで定義されている選択列です。この「CandidateStatus」の選択フィールドをドロップダウン リストにバインドするにはどうすればよいですか? また、この選択したドロップダウン値を SharePoint リストに挿入するにはどうすればよいですか? 誰でもこれについて助けてもらえますか......

4

1 に答える 1

2

私はあなたの唯一のオプションは列挙値をオブジェクトにマップすることだと思います:

myDropDown.TextField = "Value";
myDropDown.ValueField = "ID";

myDropDown.DataSource = ((CandidateStatus []) Enum.GetValues(typeof(CandidateStatus))
   .Select(c => new {
                      ID = (int)c, 
                      Value = ( typeof(CandidateStatus)
                       .GetField(c.ToString())
                       .GetCustomAttributes(
                         typeof(Microsoft.SharePoint.Linq.ChoiceAttribute), false) 
                           as EnumStringValueAttribute[]).FirstOrDefault() 
                        ?? c.ToString()
                    });
myDropDown.DataBind();
于 2012-06-19T11:15:02.517 に答える