Создать сетку с предварительно заполненными столбцами - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь создать gridview, где изначально столбец серийного номера и данные второго столбца [ПРОДУКТЫ] должны быть уже заполнены, т. Е. При загрузке страницы, а другие столбцы будут иметь текстовые поля. Пожалуйста, обратитесь к рисунку для структуры вида сетки.

Затем пользователь заполняет данные в соответствующих текстовых полях со ссылкой на данные второго столбца. Как я могу создать такой вид сетки?

enter image description here

1 Ответ

0 голосов
/ 06 мая 2018

Вот пример таких gridview. Это просто данные жесткого кода, которые вы можете добавить из database. Если вы выбираете данные из database, вы можете использовать loop для заполнения данных.

aspx страница

<asp:GridView ID="gvFabricDetails" runat="server" AutoGenerateColumns="False">

<Columns>
    <asp:TemplateField HeaderText="SL">
        <ItemTemplate>
            <asp:TextBox ID="txtLot" TabIndex="2" Text='<%# Bind("SL") %>' runat="server"></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="PRODUCTS">
        <ItemTemplate>
            <asp:TextBox ID="txtArt" TabIndex="3" Text='<%# Bind("PRODUCTS") %>' runat="server" ></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Quantity">
        <ItemTemplate>
            <asp:TextBox ID="txtBalance" TabIndex="8" Text='<%# Bind("Quantity") %>' runat="server"></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Producer">
        <ItemTemplate>
            <asp:TextBox ID="txtQTY" TabIndex="9" Text='<%# Bind("Producer") %>' runat="server" ></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

Вот метод для добавления row к gridview

private void FirstGridViewRow()
    {
        DataTable dt = new DataTable();
        DataRow dr = null;
        DataRow dr1 = null;
        DataRow dr2 = null;
        DataRow dr3 = null;
        DataRow dr4 = null;

        dt.Columns.Add(new DataColumn("SL", typeof(int)));
        dt.Columns.Add(new DataColumn("PRODUCTS", typeof(string)));
        dt.Columns.Add(new DataColumn("Quantity", typeof(string)));
        dt.Columns.Add(new DataColumn("Producer", typeof(string)));

        dr = dt.NewRow();
        dr1 = dt.NewRow();
        dr2 = dt.NewRow();
        dr3 = dt.NewRow();
        dr4 = dt.NewRow();

        dr["SL"] = 1;
        dr["PRODUCTS"] = "A";
        dr["Quantity"] = string.Empty;
        dr["Producer"] = string.Empty;

        dr1["SL"] = 2;
        dr1["PRODUCTS"] = "B";
        dr1["Quantity"] = string.Empty;
        dr1["Producer"] = string.Empty;

        dr2["SL"] = 3;
        dr2["PRODUCTS"] = "C";
        dr2["Quantity"] = string.Empty;
        dr2["Producer"] = string.Empty;

        dr3["SL"] = 4;
        dr3["PRODUCTS"] = "D";
        dr3["Quantity"] = string.Empty;
        dr3["Producer"] = string.Empty;

        dr4["SL"] = 5;
        dr4["PRODUCTS"] = "E";
        dr4["Quantity"] = string.Empty;
        dr4["Producer"] = string.Empty;

        dt.Rows.Add(dr);
        dt.Rows.Add(dr1);
        dt.Rows.Add(dr2);
        dt.Rows.Add(dr3);
        dt.Rows.Add(dr4);
        //ViewState["CurrentTable"] = dt;  if you want to get previous state keep it in viewstate

        gvFabricDetails.DataSource = dt;
        gvFabricDetails.DataBind();
    }

Теперь вы можете вызывать метод в Page_Load event

if (!Page.IsPostBack)
        {
            FirstGridViewRow();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...