2016-11-23 1 views
0

私はGridViewコントロールを持っていると私は、ユーザーのリストを表示するドロップダウンリストを使用している列の1のため:私は、データベースを更新する機能を呼び出す必要が後ろにコードでgridviewのドロップダウンリストが変更されたときに関数を呼び出す方法は?

<asp:GridView style="float:left" 
    ID="gvBookings" 
    ShowHeaderWhenEmpty="true" 
    CssClass="tblResults" 
    runat="server" 
    OnRowDataBound="gvBookings_RowDataBound"       
    DataKeyField="ID" 
    AutoGenerateColumns="false" 
    allowpaging="false" 
      <Columns>  
       <asp:BoundField DataField="FinishDate" HeaderText="Finish Date"></asp:BoundField> 
       <asp:TemplateField HeaderText="Time Spent By"> 
        <ItemTemplate> 
         <asp:DropDownList id="ddlUsers" runat="server" ></asp:DropDownList> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
</asp:GridView> 

ドロップダウンリストが変更されます。私はFinishDateコラムのために既にこれを行っていますので、ドロップダウンメニューの場合と同様の方法がありますか?背後

コード:FinishDateテキストボックスが変更されたときに

protected void gvBookings_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     BHTaskClass.BookingTask booking = (BHTaskClass.BookingTask)e.Row.DataItem; 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      foreach (TableCell c in e.Row.Cells) 
      { 
       if (count == 1) 
       { 
        string FinishTime = booking.FinishTime.HasValue ? booking.FinishTime.Value.ToString("hh':'mm") : ""; 
        c.Text = "<input type=\"text\" id=\"txtFinishTime" + booking.ID + "\" style=\"width:70px\" type=\"text\" onblur=\"UpdateFinishTime(" + booking.ID + ",this.value)\" value=\"" + FinishTime + "\" >"; 
       } 
       if (count == 2) 
       { 
        ddlUsers.SelectedValue = booking.TimeSpentName; 
       } 
        count++; 
      } 
     } 
    } 

は、だから、UpdateFinishTime関数を呼び出し、これは、データベースを更新します。ドロップダウンリストの関数をどのように呼び出すのですか?背後

答えて

1

ASPX

<asp:DropDownList id="ddlUsers" runat="server" 
     AutoPostBack="true" 
     OnSelectedIndexChanged="YourFunction_Changed"> 
</asp:DropDownList> 

コード:

protected void YourFunction_Changed(object sender, EventArgs e) 
{ 
    //do stuff... 
} 
+0

以下のようにそれを行うことができます行のIDを取得するには? – user123456789

+0

@ user123456789投稿ごとに1つ質問してください。おそらく最適ではない方法の1つは、DropDownを継承しCommandArguemntプロパティを持つカスタムドロップダウンを作成することです。その後、あなたのグリッドの項目の境界では、ddlコントロールを見つけて、行のIDにコマンド引数を設定しています。もっと最適な方法を探したいのであれば、投稿あたり1つの質問をしたように別の質問をすることができます。 – mybirthname

0

あなたは、私は、行のIDを取得するにはどうすればよい

protected void YourFunction_Changed(object sender, EventArgs e) 
{ 
    //do stuff... 
    int Index = ((GridViewRow)((sender as Control)).NamingContainer).RowIndex; 

    // your logic follows based on the Index 
} 
関連する問題