у меня есть 3 текстовых поля в gridview. Когда значение вводится в первое и второе текстовые поля, я хочу автоматически записать результат в третье текстовое поле - PullRequest
0 голосов
/ 18 июня 2019

у меня есть 3 текстовых поля в gridview. Когда значение вводится в первое и второе текстовые поля, я хочу автоматически записать результат в третье текстовое поле.

это мой гридвью:

<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" Width="892px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" AutoGenerateColumns="False">
    <AlternatingRowStyle BackColor="White" />
    <Columns>
        <asp:TemplateField HeaderText="Ales Puanı">  
            <ItemTemplate>  
                <asp:TextBox ID="Txt_Ales" runat="server" Text='<%#Eval("alesSinavPuani") %>'></asp:TextBox>  
            </ItemTemplate>  
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Dil Puanı">  
            <ItemTemplate>  
                <asp:TextBox ID="txt_Dil" runat="server" Text='<%#Eval("dilSinavPuani") %>'></asp:TextBox>  
            </ItemTemplate>  
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Toplam">  
            <ItemTemplate>  
                <asp:Label ID="lbl_Toplam" runat="server" ></asp:Label>  
            </ItemTemplate> 
        </asp:TemplateField>
    </Columns>
</asp:GridView>

1 Ответ

0 голосов
/ 18 июня 2019

1) Упоминание AutoPostBack = "true" для 2 текстовых полей 2) Упоминание события OnTextChanged = "Txt_TextChanged" для 2 текстовых полей 3) В TextChanged Event получите доступ к элементам управления, найдите логику результата и назначьте третий элемент управления. В этом случае третий элемент управления упоминается как метка. Это также может быть текстовое поле.

Код ASPX

<asp:GridView ID="GridView1" runat="server" CellPadding="3" Width="892px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellSpacing="2">
                <Columns>
                    <asp:TemplateField HeaderText="Ales Puanı">
                        <ItemTemplate>
                            <asp:TextBox ID="Txt_Ales" runat="server" Text='<%#Eval("alesSinavPuani") %>' OnTextChanged="Txt_TextChanged" AutoPostBack="true"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Dil Puanı">
                        <ItemTemplate>
                            <asp:TextBox ID="txt_Dil" runat="server" Text='<%#Eval("dilSinavPuani") %>'  OnTextChanged="Txt_TextChanged" AutoPostBack="true"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Toplam">
                        <ItemTemplate>
                            <asp:Label ID="lbl_Toplam" runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

Код события TextChange

 protected void Txt_TextChanged(object sender, EventArgs e)
        {
            TextBox Txt_Ales = GridView1.Rows[((sender as TextBox).NamingContainer as GridViewRow).RowIndex].FindControl("Txt_Ales") as TextBox;
            TextBox txt_Dil = GridView1.Rows[((sender as TextBox).NamingContainer as GridViewRow).RowIndex].FindControl("txt_Dil") as TextBox;
            Label lbl_Toplam = GridView1.Rows[((sender as TextBox).NamingContainer as GridViewRow).RowIndex].FindControl("lbl_Toplam") as Label;

            int num1, num2 = 0;
            if (Txt_Ales != null && txt_Dil != null && lbl_Toplam != null)
            {
                int.TryParse(Txt_Ales.Text, out num1);
                int.TryParse(txt_Dil.Text, out num2);
                lbl_Toplam.Text = (num1 + num2).ToString();
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...