У меня есть код:GridView проверки дубликатов не с помощью SQL
foreach (GridViewRow dr in gvCategories.Rows)<br/>
{
<br/>
if (dr.Cells[0].Text == txtEnterCategory.Text.Trim())<br/>
<br/>
isError=true;
<br/>
<br/>
}
Debugging: dr.Cells[0].Text
всегда ""
, даже есть записи. Как использовать цикл для проверки каждой строки, чтобы найти, существует ли запись в gridview, не используя sql?
Подробнее Код:
в .ascx:
<Columns>
<asp:TemplateField HeaderText="Category Name" SortExpression="Category">
<ItemTemplate>
<asp:Label ID="txtCategoryEdit" runat="server" Text='<%# Bind("CategoryName") %>' OnTextChanged="TextBox_TextChanged"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCategoryEdit" runat="server" Text='<%# Bind("CategoryName") %>' OnTextChanged="TextBox_TextChanged"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="In Footer?" SortExpression="ShowInFooter">
<ItemTemplate>
<asp:Label ID="lblShowInFooter" runat="server"
Text='<%# (bool)Eval("ShowInFooter") ? "Yes" : "No" %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="lblShowInFooter" runat="server"
Checked='<%# (bool)Eval("ShowInFooter")%>'>
</asp:CheckBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowCancelButton="true" ShowDeleteButton="true" ShowEditButton="true" CausesValidation="false" ItemStyle-CssClass="commandfield" />
</Columns>
в ascx.cs:
bool isError = false;
foreach (GridViewRow dr in gvCategories.Rows)
{
if (dr.Cells[0].Text == txtEnterCategory.Text.Trim())
{
lblErrorMessage.Text = "This category already exits. Please enter a new category!";
lblErrorMessage.Visible = true;
isError=true;
}
}
В каком случае вы используете этот код? – atfergs
Нажмите кнопку после добавления категории –
Можем ли мы увидеть разметку ASPX для gvCategories? Если в левом столбце есть кнопка, вы получите это поведение. –