2016-04-14 10 views
0

私はgoogleで検索しますが、solution.e.Rowsまたはe.rowがビジュアルスタジオ2010.Howで動作しないのが見つかりません。このプロパティを取得できますか。 "ボタンを押すと、gridviewのcolumsnが異なり、カラム名が" Data Type "の場合、このカラムは" dropdownlist "で埋められ、ドロップダウンリストから値を選択します。私のドロップダウンコントロールIDは" dropdownlist1 "です。私のコード「GridViewの編集」イベントコードです:ここでGridviewの編集中に手動でコントロールを追加するには? ASP.NET C#

protected void GridView2_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    DataTable t = (DataTable)Session["MyDataTable"]; 
    GridView2.EditIndex = e.NewEditIndex; 
    DropDownList ddlName = 
       (DropDownList)e.Row.FindControl("dropdownlist1"); // HERE IS ERROR AT "Row" 
    ddlName.DataTextField = "Data Type"; 
    ddlName.DataValueField = "Data Type"; 
    GridView2.DataSource = t; 
    GridView2.DataBind(); 
} 

は私のaspxコードは次のとおりです。??

<asp:GridView ID="GridView2" runat="server" AutoGenerateDeleteButton="True" 
     AutoGenerateEditButton="True" BackColor="#DEBA84" BorderColor="#DEBA84" 
     BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" 
     ShowHeaderWhenEmpty="True" onrowcancelingedit="GridView2_RowCancelingEdit" 
     onrowdeleting="GridView2_RowDeleting" onrowediting="GridView2_RowEditing" 
     onrowupdating="GridView2_RowUpdating" AutoGenerateColumns="False" 
     Width="92px"> 
     <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> 
     <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /> 
     <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> 
     <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" /> 
     <SortedAscendingCellStyle BackColor="#FFF1D4" /> 
     <SortedAscendingHeaderStyle BackColor="#B95C30" /> 
     <SortedDescendingCellStyle BackColor="#F1E5CE" /> 
     <SortedDescendingHeaderStyle BackColor="#93451F" /> 
    </asp:GridView> 

</div> 
<asp:TextBox ID="TextBox1" runat="server" Width="137px"></asp:TextBox> 
<asp:DropDownList ID="DropDownList1" runat="server" Height="20px" 
    onselectedindexchanged="DropDownList1_SelectedIndexChanged" Width="140px"> 
    <asp:ListItem>int</asp:ListItem> 
    <asp:ListItem>Varchar</asp:ListItem> 
</asp:DropDownList> 
<asp:CheckBox ID="Null" runat="server" /> 
<asp:CheckBox ID="Primary" runat="server" /> 
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Insert" 
    style="margin-left: 59px" Width="56px" /> 
<asp:Button ID="Button2" runat="server" Height="33px" style="margin-left: 76px" 
    Text="Create Table" Width="94px" /> 

は私が正しい道の上だか、私はそれをどのように行うことができ、またトンですどのように私は、GridViewのmanually.ThereにGridViewのrow.I挿入値を更新することができ、私をELLすると、インデックスを使用して行を取得することができます

+0

れたGridViewのイベントに。行 '? –

答えて

1

何のデータベース接続etc.Thanksではありません:

GridViewRow row = GridView2.Rows[e.NewEditIndex]; 


UPDATE

あなたは、GridViewコントロールのTemplateFieldにDropDownListコントロールを置くことができます。

<asp:GridView ...> 
    ... 
    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:Literal runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "DataTypeValue")) %>' /> 
     </ItemTemplate> 
     <EditItemTemplate> 
      <asp:DropDownList ID="ddlTypeName" runat="server" ... /> 
     </EditItemTemplate> 
    </asp:TemplateField> 
    ... 
</asp:GridView> 

(私はあなたが選択したデータタイプを表示したい場合には、オプションのItemTemplateを示した)

次に、あなたがあなたのイベントハンドラでDropDownListコントロールを取得することができます:あなたは `Eをしようとしている

GridViewRow row = GridView2.Rows[e.NewEditIndex]; 
DropDownList ddlTypeName = (DropDownList)row.FindControl("ddlTypeName"); 
... 
+0

しかし、 "編集"ボタンをクリックするとグリッドビューに "データ型"という名前の列があり、この列が "dropdownlist"で満たされ、list.myドロップダウンリストから値を選択すると、ドロップダウンリストIDが "dropdownlist1"になります。どうすればいいですか? – Saira

+0

マークアップを表示して、すでに質問したマークアップに新しい質問を追加することができます。 DropDownListがGridViewの 'TemplateField'にある場合、' ddlName'を 'dropdownlist1'に置き換えたコードサンプルのように' FindControl'で検索することができます。コントロール)。 – ConnorsFan

+0

私の更新された質問を親切にチェックしてください – Saira

関連する問題