.NET 폼 응용 프로그램에서 gridview가 있고 포스트 백에서 gridview 내의 텍스트 상자에 입력 된 값을 볼 수 없습니다.GridView의 TextBox가 포스트 백에 해당 값을 보유하지 않습니다.
ASPX : 뒤에
<asp:GridView ID="gvItems" runat="server" AutoGenerateColumns="false" ShowHeader="false" DataKeyNames="ItemId" EnableViewState="true">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="txtItem" runat="server" Text="0" EnableViewState="true" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ItemId" />
</Columns>
</asp:GridView>
<asp:Button runat="server" ID="btn" Text="Submit" OnClick="btn_OnClick" OnClientClick="javascript:return someClientStuff();" />
코드 :
protected void btn_OnClick(object sender, System.EventArgs e)
{
foreach(GridViewRow row in gvItems.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
var itemId = Convert.ToInt32(gvItems.DataKeys[row.RowIndex].Values[0]);
var itemValue = ((row.Cells[0].FindControl("txtItem") as TextBox).Text;
}
}
내가 각 행에 대해 채워 해당 itemId를보고하고 있지만, 빈 문자열은 항상 itemValue입니다.
양식 신청서를 작성한 이래로 어느 정도 도움이되었습니다.
여기에 'var itemId and itemValue' 범위 문제와 같이 보입니다. 버튼 클릭 후 할당 할 곳은 어디입니까? 또한 페이지로드시'if (IsPostBack) {} '체크가 있습니까? – MethodMan
@DJKRAZE 아무데도 할당하지 않음 - 그냥 디버깅을하고 모든 행에 대해 비어 있음을 알았습니다. – Prabhu
이 게시판의 범위 및 Databind 문제입니다. – MethodMan