나는 다음과 같은 격자를 가지고 :UpdateCommand 문제
<asp:GridView DataSourceID="accountsDataSource" DataKeyNames="Id" ShowEditButton="true" ...>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Hyperlink ID="lnkGridEditEntry" runat="server" Text='<%# Bind("Name")%>' NavigateUrl="..." />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtGridAccountName" runat="server" Text='<%# Bind("Name") %>' />
</EditItemTemplate>
</asp:TemplateField>
</asp:GridView>
<asp:SqlDataSource ID="accountsDataSource" SelectCommand= "..." DeleteCommand= "..." UpdateCommand="update Account set [Name][email protected] where [Id][email protected]">
<UpdateParameters>
<asp:Parameter Name="Name" />
<asp:Parameter Name="Id" />
</UpdateParameters>
</asp:SqlDataSource>
나는 "편집"버튼을 클릭하고 이름을 업데이트하지 코드 위에 이름을 업데이트하려고하면
나는 "ControlParameter 이름의 제어 txtGridAccountName을 찾을 수 없습니다"로
<asp:ControlParameter ControlID="txtGridAccountName" Name="Name" PropertyName="Text" Type="String" />
페이지 충돌로 이름 업데이트 매개 변수를 변경합니다. 템플릿 필드의 텍스트 상자에 다른 ID (ct100 $ txtGridAccountName $ .. 같은 것) 가져옵니다 때문에 그리드 렌더링되고 분명히 찾을 수 없기 때문에이 믿습니다.
accout 이름은 세부 정보/거래 페이지에 대한 링크로 표시하고 있기 때문에 처음에는 템플릿 필드로 렌더링됩니다.
템플릿 필드를 제거하고이 이름을 표시하면 작동합니다.
이 문제를 해결하는 데 도움이됩니다.
죄송합니다. 코드가 사라졌습니다. 나는 코드를 다시 편집 할 것이다. – Shankar
이 문제는 그 자체로 사라졌습니다. 나는 아무 것도하지 않았습니다. 나는 거기 VS 또는 뭔가 이상한 문제가 있다고 생각합니다. 지금 ItemTemplates를 사용할 수 있습니다. – Shankar