2017-12-21 5 views
0

두 개의 gridview가있는 페이지가 있습니다. 하나는 모달 팝업 (grdEmpName) 안에 있고 다른 하나는 페이지 (gvUser)에 있습니다. 이제 사용자가 검색 버튼을 선택하면 모달 팝업 확장기가 팝업되어 직원을 검색합니다. 사용자가 누군가를 선택하면 선택한 데이터가 다른 그리드 뷰 (gvUser)의 텍스트 상자에 표시됩니다.Error : system.data.dataexception을 설정할 수 없습니다. NAME

모달 팝업 확장기 gridview (grdEmpName)에서 모든 항목이 선택 항목으로 작동하지만 아무 데이터도 선택하지 않으면 다른 gridview로 전달됩니다. (gvUser). 선택한 데이터를 텍스트 상자에 표시해야합니다.

ASPX : 이제

<asp:GridView ID="gvUser" runat="server" Width="1024px" 
       PageSize="10" 
       AutoGenerateColumns = "False" 
       AllowSorting="true" 
       AllowPaging="true" 
       ShowFooter="True" 
       OnSorting="gvUser_Sorting" 
       OnPageIndexChanging="gvUser_PageIndexChanging" 
       OnRowCreated="gvUser_RowCreated" 
       CssClass="Grid" 
       AlternatingRowStyle-CssClass="alt" 
       PagerStyle-CssClass="pgr" 
       FooterStyle-HorizontalAlign="center" > 
       <PagerSettings Mode="NumericFirstLast" PageButtonCount="5" FirstPageImageUrl="~/images/gridview/first_16x16.png" LastPageImageUrl="~/images/gridview/last_16x16.png" /> 
       <Columns> 
        <asp:TemplateField> 
         <ItemTemplate >  
          <asp:ImageButton ID="ibtnEdit" runat="server" ImageUrl="~/images/gridview/file_edit_24x24.png" title = "Edit" _CommandArgument='<%# Eval("USR_ID") & "|Edit|" & CType(Container,GridViewRow).RowIndex & "|-" %>' /> 
          <asp:ImageButton ID="ibtnUpdate" runat="server" ImageUrl="~/images/gridview/file_save_24x24.png" visible="false" title="Update" _CommandArgument='<%# Eval("USR_ID") & "|Update|" & CType(Container,GridViewRow).RowIndex & "|-" %>' /> 
          <asp:ImageButton ID="ibtnCancel" runat="server" ImageUrl="~/images/gridview/file_cancel_24x24.png" Visible="false" title="Cancel" _CommandArgument='<%# Eval("USR_ID")& "|Cancel|" & CType(Container,GridViewRow).RowIndex & "|-" %>' /> 
          <asp:ImageButton ID="ibtnDelete" runat="server" ImageUrl="~/images/gridview/file_delete_24x24.png" title="Delete" _CommandArgument='<%# Eval("USR_ID")& "|Delete|" & CType(Container,GridViewRow).RowIndex & "|" & Eval("USR_IDNTY") %>' /> 
          <asp:ImageButton ID="btnSearchUser" runat="server" ImageUrl="~/images/gridview/file_search_24x24.png" title="Search" _CommandArgument= "btnSearchUser" OnClick = "btnSearchUser_Click" /> 
         </ItemTemplate> 

         <FooterTemplate> 
          <asp:ImageButton ID="ibtnAdd" runat="server" ImageUrl="~/images/gridview/file_add_24x24.png" title="Add" _CommandArgument='<%# Eval("USR_ID") & "|Add|" & CType(Container,GridViewRow).RowIndex & "|-" %>' /> 

         </FooterTemplate> 

         <HeaderStyle Wrap="False" /> 
         <ItemStyle Wrap="False" Width="50px" />    
        </asp:TemplateField> 
       <asp:TemplateField HeaderText="User Identity" visible ="false" > 

         <ItemTemplate> 
          <asp:Label ID="lblUSR_IDNTY" runat="server" Text='<%# Bind("USR_IDNTY")%>' /> 
         </ItemTemplate> 

         <EditItemTemplate> 
          <asp:Label ID="lblUSR_IDNTY" runat="server" Width="95%" Text='<%# Bind("USR_IDNTY")%>' /> 
         </EditItemTemplate> 

         <HeaderStyle Wrap="False" /> 
         <ItemStyle Wrap="False" /> 
       </asp:TemplateField>       

        <asp:TemplateField HeaderText="User ID" SortExpression="USR_ID"> 
         <ItemTemplate> 
          <asp:Label ID="lblUSR_ID" runat="server" Text='<%# Bind("USR_ID")%>' /> 
         </ItemTemplate> 

         <EditItemTemplate> 
          <asp:Label ID="txtUSR_ID" runat="server" Width="95%" Text='<%# Bind("USR_ID")%>' /> 
         </EditItemTemplate> 

         <FooterTemplate> 
          <asp:TextBox ID="txtUSR_ID" runat="server" Width="95%"/> 
         </FooterTemplate>      

         <HeaderStyle Wrap="False" /> 
         <ItemStyle Wrap="False" /> 
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Name" SortExpression="NAME"> 
         <ItemTemplate> 
          <asp:Label ID="lblNAME" runat="server" Text='<%# Bind("NAME")%>' /> 
         </ItemTemplate> 

         <EditItemTemplate> 
          <asp:TextBox ID="txtNAME" runat="server" Width="95%" Text='<%# Bind("NAME")%>'/> 
         </EditItemTemplate>   

         <FooterTemplate> 
          <asp:TextBox ID="txtNAME" runat="server" Width="95%"/> 
         </FooterTemplate> 

         <HeaderStyle Wrap="False" /> 
         <ItemStyle Wrap="False" /> 
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Email" SortExpression="EMAIL"> 
         <ItemTemplate> 
          <asp:Label ID="lblEMAIL" runat="server" Text='<%# Bind("EMAIL")%>' /> 
         </ItemTemplate> 

         <EditItemTemplate> 
          <asp:TextBox ID="txtEMAIL" runat="server" Width="95%" Text='<%# Bind("EMAIL")%>'/> 
         </EditItemTemplate>   

         <FooterTemplate> 
          <asp:TextBox ID="txtEMAIL" runat="server" Width="95%"/> 
         </FooterTemplate> 

         <HeaderStyle Wrap="False" /> 
         <ItemStyle Wrap="False" /> 
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Active" SortExpression="ACTIVE"> 
         <ItemTemplate> 
          <asp:CheckBox ID="chkACTIVE" runat="server" Checked ='<%# Bind("ACTIVE")%>' Enabled="false" /> 
         </ItemTemplate> 

         <EditItemTemplate> 
          <asp:CheckBox ID="chkACTIVE" runat="server" Width="95%" Checked ='<%# Bind("ACTIVE")%>'/> 
         </EditItemTemplate>   

         <FooterTemplate> 
          <asp:CheckBox ID="chkACTIVE" runat="server" Width="95%"/> 
         </FooterTemplate> 

         <HeaderStyle Wrap="False" /> 
         <ItemStyle HorizontalAlign="Center" Wrap="False"/> 
        </asp:TemplateField>                         
       </Columns> 
       <EmptyDataTemplate> 
        <div style="height:315px;border-style:hidden;" > 
         <table class="table" > 
          <tr> 
           <td style="padding:5px;" > 
            <img id="Img1" style="height:24px;width:24px; " runat="server" src="images/no_data_64x64.png" />  
           </td> 
           <td style="padding:5px;font-size:large;"> 
            <b>No data found.</b> 
           </td> 
          </tr> 
         </table> 
        </div> 
       </EmptyDataTemplate> 

       <PagerStyle CssClass="pgr" /> 
       <AlternatingRowStyle CssClass="alt" /> 
       <FooterStyle HorizontalAlign="Center" /> 
       <EmptyDataRowStyle CssClass="EmptyData" /> 
       </asp:GridView> 
      </div>           

     <%-- Picker--%> 

     <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
     </cc1:ToolkitScriptManager> 


     <cc1:ModalPopupExtender runat="server" TargetControlID="hdControl" ID="mdlEmpListProcess" PopupControlID="empPanel" CancelControlID="btnClose" OnCancelScript="getFlickerSolved();" > 
     </cc1:ModalPopupExtender> 

     <asp:HiddenField runat="server" ID="hdControl" /> 
     <asp:Panel runat="server" ID="empPanel" Width="909px" Height="300" BorderStyle="Ridge" BorderColor="Gray" Style="display:none;" BackColor="Control"> 

     <table> 
        <tr> 
         <td> 
          &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; 
          <asp:TextBox runat="server" id="txtEmpName" CssClass="textbox" Width="240"></asp:TextBox> 
          &nbsp;<asp:Button runat="server" ID="btnSearchEmp" CssClass="button" Text="SEARCH" OnClientClick="getFlickerSolved();"/> 
            <asp:Button runat="server" ID="btnClose" CssClass="button" Text="CLOSE" /> 
         </td> 
        </tr> 
     </table> &nbsp;<br /> 
      &nbsp; &nbsp; 
     <div style="overflow:scroll; width:882px; height:233px;"> 
          <asp:GridView runat="server" ID="grdEmpName" Width="863px" AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" Height="35px" GridLines="Vertical"> 
           <Columns> 
             <asp:TemplateField> 
               <ItemTemplate> 
                 <asp:RadioButton runat="server" ID="optEmp" AutoPostBack="true" _CommandArgument= "Select" OnCheckedChanged="selectedEmployee" /> 
               </ItemTemplate> 
             </asp:TemplateField> 
             <asp:BoundField DataField="USR_ID" HeaderText="USER ID"/> 
             <asp:BoundField DataField="NAME" HeaderText="NAME"/> 
             <asp:BoundField DataField="EMAIL" HeaderText="EMAIL ADDRESS"> 
              <HeaderStyle Width="300px" /> 
             </asp:BoundField>   
           </Columns> 
           <RowStyle CssClass="rowStyle" /> 
           <HeaderStyle CssClass="headerStyle" BackColor="Black" Font-Bold="True" ForeColor="White" /> 
           <FooterStyle BackColor="#CCCCCC" /> 
           <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" /> 
           <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" /> 
           <AlternatingRowStyle BackColor="#CCCCCC" /> 
          </asp:GridView>   
     </div> 
      </asp:Panel> 

     <%-- End Picker--%> 

, 여기 selectedEmployee (라디오 버튼)에 대한 내 코드

Public Sub selectedEmployee(ByVal sender As Object, ByVal e As System.EventArgs) 

    Dim lnBTNDone As RadioButton = DirectCast(sender, RadioButton) 
    Dim row As GridViewRow = DirectCast(lnBTNDone.NamingContainer, GridViewRow) 

    Dim RowIndex As Integer = gvUser.EditIndex 
    Dim dt As New DataTable 

    dt = TryCast(Session("dbCache_User"), DataView).Table.Copy 
    dt.AcceptChanges() 

    Dim dv As New DataView(dt, "", "USR_IDNTY", DataViewRowState.OriginalRows) 
    Dim s As String = TryCast(gvUser.Rows(RowIndex).FindControl("lblUSR_IDNTY"), Label).Text 
    Dim idx As Integer = dv.Find(s) 

    If idx = -1 Then 
     Console.WriteLine("Not Found") 

    Else 

     dv(idx)("USR_ID") = row.Cells(1).Text 
     dv(idx)("NAME") = row.Cells(2).Text 
     dv(idx)("EMAIL") = row.Cells(3).Text 

    End If 

    gvUser.DataSource = dv 
    gvUser.DataBind() 

    Me.mdlEmpListProcess.Hide() 

End Sub 

나는 값이 전달되고 있는지 확인하는 프로그램을 디버깅하고있어 다음 내가 NAME에 통과 할 때입니다 및 이메일,이 오류

system.data.dataexception was unhandled by user code. Cannot set NAME when passing the value.

dv(idx)("NAME") = row.Cells(2).Text 
에게 발생했습니다

내가 뭘 잘못 했니?

답변

0

Google에서는 거의 불가능하지만 NAME 열의 이름을 다른 것으로 변경해보세요. NAME 열이있는 그리드보기에 문제가 있습니다.

수정 사항이 권장 사항을 포함하도록 수정되었습니다.

+0

어느 gridview입니까? – Yinah

관련 문제