将gridview的Cell值与文本框值进行比较

时间:2012-06-07 06:10:57

标签: c# asp.net

我有一个包含6列的gridview (SAPUserID ,SAPDescription,SAPPassword,OSUserID,OSDescription,OSPassword)CHANGE PASSWORD按钮。点击此按钮后,网格视图下方的面板(pnlChangePwd)变为可见,其中包含3个文本框(User ID, New Password, Confirm Password)Save按钮。如果我输入与旧密码相同的新密码,则表示接受。如何将txtNewPassword中的值与网格视图中SAPPassword或OSPassword的单元格值进行比较?

注意:根据用户需要的数据(SAP或OS)

,一次只能看到3列

网格视图代码:

<asp:GridView runat="server" ID="gvPassInfo" AutoGenerateColumns="false" 
                          CellPadding="4" ForeColor="#333333" GridLines="Both" DataKeyNames="user_id" 
                          CssClass="Gridview"  OnRowEditing="gvPassInfo_RowEditing"
                          OnRowCommand="gvPassInfo_RowCommand"  OnRowDataBound="gvPassInfo_RowDataBound">
                <RowStyle BackColor="#EFF3FB" />
                <Columns>                                       
                    <asp:TemplateField HeaderText="User ID" Visible="false">
                        <ItemTemplate>
                            <asp:Label ID="lblSAPUserId" runat="server">
                            </asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="User ID" Visible="false">
                        <ItemTemplate>
                            <asp:Label ID="lblOSUserId" runat="server">
                            </asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Description" Visible="false">
                        <ItemTemplate>
                            <asp:Label ID="lblSAPDescription" runat="server">
                            </asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Description" Visible="false">
                        <ItemTemplate>
                            <asp:Label ID="lblOSDescription" runat="server">
                            </asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Password" Visible="false">
                        <ItemTemplate>
                            <asp:Label ID="lblSAPPassword" runat="server">
                            </asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Password" Visible="false">
                        <ItemTemplate>
                            <asp:Label ID="lblOSPassword" runat="server">
                            </asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Change Password">
                        <ItemTemplate>
                            <asp:ImageButton ID="ImgBtnChangePass" runat="server" ImageUrl="~/images/PW.jpg" CausesValidation="false"
                                             CommandName="Edit" />
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#2461BF" />
                <AlternatingRowStyle BackColor="White" />
            </asp:GridView>

1 个答案:

答案 0 :(得分:0)

以下是“保存”按钮的代码

    var currentRow = gvPassInfo.Rows.OfType<GridViewRow>().Single(r => ((Label)r.FindControl("lblSAPUserId")).Text == txtUserId.Text);
    bool doesMatch = ((Label)currentRow.FindControl("lblOSPassword")).Text == "NewPassword";

但是,最好在您绑定到网格的集合中搜索密码。