как сохранить значения текстового поля в сетке вида asp.net после проверки обязательного поля проверки - PullRequest
2 голосов
/ 10 февраля 2012

У меня есть регулярный просмотр сетки с операциями вставки, редактирования, обновления, удаления, как показано на изображении ниже:

GridView

Перед вставкой данных в БД я проверяютекстовые поля, если они заполнены или пусты, как это:

if (txtNewID.Text == "")
{
    string message = "Please enter ID";
    ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), "Alert", "alert('" + message + "')", true);
    isValid = false;              
}

Но после нажатия кнопки ОК в сообщении с предупреждением значения, которые я добавил в необходимые текстовые поля, теряются.Как сохранить значения текстовых полей в gridview?

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Code, Type" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDataBound="GridView1_RowDataBound" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCommand="GridView1_RowCommand" ShowFooter="True" OnRowDeleting="GridView1_RowDeleting"> 
    <Columns> 
      <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>  
        <tr>
        <td class="style1" >
        <asp:GridView ID="gridID" DataKeyNames="Tracker_ID , Current_Status" runat="server" 
                GridLines="Both" Width="600px" BorderColor="Black"
                ShowFooter="true" AutoGenerateColumns="false" 
                onrowcancelingedit="gridID_RowCancelingEdit" 
                onrowediting="gridID_RowEditing" onrowcommand="gridID_RowCommand" 
                onrowdeleting="gridID_RowDeleting" onrowdatabound="gridID_RowDataBound" onrowupdating="gridID_RowUpdating" 
                >
        <Columns>
        <asp:TemplateField HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10" HeaderText="ID#"> 
        <EditItemTemplate> 
      <asp:TextBox ID="ID" BorderWidth="1" Text='<%# Eval("ID") %>' Width="50px" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
      <asp:TextBox ID="txtNewID" BorderWidth="1" Width="50px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
      <asp:Label ID="lblID" Font-Size="Smaller" runat="server" Text='<%# Bind("ID") %>'></asp:Label> 
    </ItemTemplate> 

    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle>
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="ID Description"   HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
        <EditItemTemplate> 
      <asp:TextBox ID="IDDesc" Text='<%# Eval("ID_Description") %>' Width="99px"  BorderWidth="1" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
      <asp:TextBox ID="txtNewIDDesc" BorderWidth="1" Width="99px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
      <asp:Label ID="lblIDDesc" Font-Size="Smaller" Text='<%# Bind("ID_Description") %>' runat="server"></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle>
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="HCL Author" HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
        <EditItemTemplate> 
      <asp:TextBox ID="txtHclAuthor" Text='<%# Eval("HCL_Author") %>' Width="95px" BorderWidth="1" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
      <asp:TextBox ID="txtNewHclAuthor"  BorderWidth="1" Width="95px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
      <asp:Label ID="lblHclAuthor" Font-Size="Smaller" Text='<%# Bind("HCL_Author") %>' runat="server"></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle>
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Xerox Author" HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
        <EditItemTemplate> 
      <asp:TextBox ID="txtXeroxAuthor" Text='<%# Eval("Xerox_Author") %>' Width="95px" BorderWidth="1" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
      <asp:TextBox ID="txtNewXeroxAuthor" BorderWidth="1" Width="95px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
      <asp:Label ID="lblXeroxAuthor" Font-Size="Smaller" Text='<%# Bind("Xerox_Author") %>' runat="server"></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle>
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Track" HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
        <EditItemTemplate> 
      <asp:TextBox ID="IDTrack" Text='<%# Eval("Track") %>' Width="80px" BorderWidth="1" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
      <asp:TextBox ID="txtNewIDTrack" BorderWidth="1" Width="80px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
      <asp:Label ID="lblIDTrack" Font-Size="Smaller" Text='<%# Bind("Track") %>' runat="server"></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle>
    </asp:TemplateField> 
     </Columns>

        </asp:GridView>
        </td>       </tr>      </ContentTemplate>
</asp:UpdatePanel> 

Ответы [ 3 ]

1 голос
/ 02 марта 2012

Каждый раз, когда вызывается событие PostBack, мы можем потерять данные страницы. Если вы поместите сетку в updatepanel , в противном случае поместите ее в сетку, если вы не получили значения в viewstate.

0 голосов
/ 13 февраля 2012

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.requiredfieldvalidator.aspx

Свяжите валидатор с текстовым полем, которое вам необходимо для того, чтобы подтвердить отправку / публикацию с помощью свойства ControlToValidate.

0 голосов
/ 10 февраля 2012

Попробуйте динамически найти необходимый валидатор поля в RowDataBoundEvent Grid View.

TextBox tb=e.Row.FindControl("txtBox") as TextBox;
tb.ValidationGroup=e.RowIndex; 
RequiredFieldvalidation rv=e.Row.FindControl("rv") as
RequiredFieldValidator; rv.ControlTovalidate=tb; rv.ErrorMessage;
rv.ErrorMessage="*";
rv.ValidationGroup=e.RowIndex;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...