0

我有一个两列的网格视图。一个命名产品和另一个命名(模板字段中的两列)。

产品列绑定到“产品”表。并且字段的项目模板包含一个文本框。

我需要通过网格视图中的文本框将值插入数据库表“BrandProperties”,但我不确定如何执行此操作。

这是我的代码:

    if (!IsPostBack)
    {
        BindView();

    }

    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter("select ID,TypeName from ProductTypes",con);
    da.Fill(dt);
    DropDownList1.DataSource = dt;
    DropDownList1.DataValueField = "ID";
    DropDownList1.DataTextField = "TypeName";
    DropDownList1.DataBind();
}

public void BindView()
{

    DataTable dt = new DataTable();
    string sql = "select * from Properties";
    con.Open();
    SqlDataAdapter da = new SqlDataAdapter(sql, con);
    da.Fill(dt);
    GridView1.DataSource = dt;
    GridView1.DataBind();
    con.Close();
}

aspx.代码:

   Text="Brand Name"></asp:Label>
    <asp:Button ID="Button1" runat="server" BackColor="#6699FF" 
        style="z-index: 1; left: 410px; top: 391px; position: absolute" 
        Text="SAVE" onclick="Button1_Click" />

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" 
    CellPadding="3" GridLines="Horizontal" 
    style="z-index: 1; left: 52px; top: 230px; position: absolute; height: 133px; width: 344px">
    <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
    <Columns>
        <asp:TemplateField HeaderText="Product">
            <ItemTemplate>
                <asp:Label ID="Label3" runat="server" Text='<%# Bind("PropertyName") %>' ></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Value">
            <ItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
4

1 回答 1

1

试试这个

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px"
    CellPadding="3" GridLines="Horizontal" Style="z-index: 1; left: 52px; top: 230px;
    position: absolute; height: 133px; width: 344px">
    <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
    <Columns>
        <asp:TemplateField HeaderText="Product">
            <ItemTemplate>
                <asp:Label ID="Label3" runat="server" Text='<%# Bind("PropertyName") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Value">
            <ItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                <asp:Button ID="btnSave" runat="server" Text="SaveValues" OnClick = "btnSave_OnClick" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>




protected void btnSave_OnClick(object sender, EventArgs e)
{
    Button lb = (Button)sender;
    GridViewRow row = (GridViewRow)lb.NamingContainer;
    if (row != null)
    {
        int index = row.RowIndex; //gets the row index selected

        TextBox tb = (TextBox)GridView1.Rows[index].FindControl("TextBox2");
        string YourRequiredText = tb.Text;
    }
}
于 2013-05-21T10:53:49.643 回答