1

ここに画像の説明を入力

このようなグリッドビュー出力があります。

編集リンクをクリックすると、unitsinstock 値をテキスト ボックス コントロールに転送する必要があります。テンプレートフィールドに存在します。

ここに私のC#コードがあります:

TextBox tt = (TextBox)GridView1.Rows[i].Cells[3].FindControl("TextBox2").ToString();

TextBox text_ref = (TextBox)GridView1.Rows[e.NewEditIndex].Cells[2].FindControl("TextBox2");

TextBox3.Text = text_ref.Text;

何か間違っていることでも?私がデバッグするときe.NewEdtIndex=0TextBox3=null。これを解決するには?

4

1 に答える 1

2

これに使用する必要がありますEditItemTemplate。たとえば、上記のコードは、行を編集するときにunitsinstock値をunitsinstock コピーテキスト ボックスにバインドします。

SqlDataSource も変更します。

<UpdateParameters>
    <asp:Parameter Name="unitsinstock" Type="Int32" /> /*Put the correcly type here*/
    /*other fields*/
</UpdateParameters>

そしてGridView:

<asp:TemplateField HeaderText="unitsinstock">
  <ItemTemplate>
<asp:label id="labelUnitsinstock" runat="server" text='<%#Eval("unitsinstockActual")%>'>
    </asp:label>
  </ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="unitsinstock copy">
  <EditItemTemplate>
    <asp:TextBox ID="TextBox1" runat="server"
     Text='<%# Bind("unitsinstock") %>'></asp:TextBox>
  </EditItemTemplate>
</asp:TemplateField>

詳細については、ここを参照してください。GridView コントロールでの TemplateFields の使用

于 2013-08-02T17:45:39.490 に答える