2011-08-05 6 views
0
<asp:GridView ID="gvStates" AutoGenerateColumns="false" Width="100%" AllowSorting="true" 
        runat="server" OnRowCreated="gvStates_RowCreated" 
        OnRowDataBound="gvStates_RowCreated"> 
     <HeaderStyle BackColor="#57768f" ForeColor="White" /> 
     <RowStyle BackColor="#dae2e8" ForeColor="Black" HorizontalAlign="Center" /> 
     <AlternatingRowStyle BackColor="#ffffff" ForeColor="Black" /> 
     <Columns> 
      <asp:BoundField HeaderText="key" DataField="key" /> 
      <asp:BoundField HeaderText="Name" DataField="Name" /> 
      <asp:BoundField HeaderText="Quota" DataField="Quota" /> 
      <asp:BoundField HeaderText="Session" DataField="Sess" > 
       <ItemStyle HorizontalAlign="Center" /> 
      </asp:BoundField> 
      <asp:TemplateField HeaderText=""> 
       <ItemTemplate> 
        <asp:DropDownList ID="ddlSess" Width="100%" AutoPostBack="true" runat="server" OnSelectedIndexChanged="ddl"> 
        </asp:DropDownList> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Scheduled"> 
       <ItemTemplate> 
        <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%#Bind("Sched")%>' Enabled="false" /> 
       </ItemTemplate> 
       <EditItemTemplate> 
        <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%#Bind("Sched")%>' /> 
       </EditItemTemplate> 
       <ItemStyle HorizontalAlign="Center" /> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText=""> 
       <ItemTemplate> 
        <asp:Button ID="_b_SchStat" runat="server" AutoPostBack="true" Text="UnSchedule" OnClick="_b_ToggleSched" /> 
       </ItemTemplate> 
       <ItemStyle HorizontalAlign="Center" /> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Recruiter"> 
       <ItemTemplate> 
        <asp:DropDownList ID="ddRec" Width="100%" AutoPostBack="true" runat="server" OnSelectedIndexChanged="ddR"> 
        </asp:DropDownList> 
       </ItemTemplate> 
      </asp:TemplateField> 

      <asp:BoundField HeaderText="MN Phone" DataField="MN Phone" /> 
      <asp:BoundField HeaderText="Cell Phone" DataField="Cell Phone" /> 
     </Columns> 
    </asp:GridView> 

[dbo].[QRY_RecruitGrid] 
@jobnum  varchar(20), 
@quota   varchar(10), 
@sess   VARCHAR(10) 
AS 
SELECT 
[job_resp_recordid] as 'key' 
,[job_resp_name] as 'Name' 
,[job_resp_quota] as 'Quota' 
,[job_resp_session] as 'Sess' 
,[job_resp_scheduled] as 'Sched' 
,COALESCE([job_resp_recruited_by], '') as 'Recruiter' 
,case when len(ltrim(rtrim([job_resp_phone])))='10' then '('+SUBSTRING([job_resp_phone],1,3)+')'+'  '+SUBSTRING([job_resp_phone],4,3)+'-'+SUBSTRING([job_resp_phone],7,4) when len(ltrim(rtrim([job_resp_phone])))='' then ' ' end AS [MN Phone] 
,case when len(ltrim(rtrim([job_resp_cellphone])))='10' then '('+SUBSTRING([job_resp_cellphone],1,3)+')'+' '+SUBSTRING([job_resp_cellphone],4,3)+'-'+SUBSTRING([job_resp_cellphone],7,4) when len(ltrim(rtrim([job_resp_cellphone])))='' then ' ' end AS [Cell Phone] 
FROM [dbo].[tbl_job_respondents] 
WHERE job_resp_job_number like @jobnum 
and job_resp_quota like @quota 
AND job_resp_session LIKE @sess 
order by job_resp_quota, [job_resp_name] 

私は 'ddRec'ドロップダウンをデータセットのRecruiterフィールドにバインドしようとしています。私が試み DataTextField = '<%位バインド( "リクルーター")%>'バインディングプログラムでグリッドビューでドロップダウン

編集:

エラー:そのような評価()、XPathの()、およびバインド(AS {「データバインディング方法)缶のみデータバインドされたコントロールのコンテキストで使用することができます。」}

私は、私が思うOnRowCreatedイベントのクエリから移入されてprocのが、ドロップダウンリスト自体から値を設定しようとしている、これは私の問題あなたは、プログラムDataTextFieldフィールドにバインドすることはできません

protected void gvStates_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
var drop = new List<string> { "" }; 

    var LNQ = new LNQDataContext(); 
    var Rec = LNQ.Recruits.Where(c => c.Active == "Y").Select(c => new { c.Name }); 
    var Rdp = new List<string> { "" }; 
    foreach (var a in Rec) { Rdp.Add(a.Name); } 

    for (int i = 1; i <= _cnt; i++) { drop.Add("S" + i); } 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     var ddl = (DropDownList)e.Row.FindControl("ddlSess"); 
     ddl.DataSource = drop; 
     ddl.DataBind(); 

     var ddR = (DropDownList)e.Row.FindControl("ddRec"); 
     ddR.DataSource = Rdp; 
     ddR.DataBind(); 
    } 
} 
+0

「いいえ」とはどういう意味ですか? –

答えて

1

です。 DataTextFieldはドロップダウンに表示するフィールドを識別します。したがって、静的でなければならず、行ごとに評価されません。ただし、GridのRowDataBoundイベントを利用して、プログラム可能にDataTextFieldプロパティを設定し、その時点でデータをバインドすることができます。

HTH。

関連する問題