여기에 내 gridview
과 행 내의 편집 버튼을 클릭 할 때 발생하는 이벤트가 있습니다. 어떤 이유로 내 datakey
값이 null이라는 프로그램을 크래시하고 있습니다. 왜 그런지 모르겠다. gridview
의 DataKeyNames는 정확하게 내가 원하는대로 formID
입니다. 당신이 볼 수 있듯이 gridview
의 마지막 열이 나를 formID
으로 보여주기 때문에 이것이 정확합니다. 그래서 내가 어디로 잘못 가고 있는지 전혀 모른다.GridKey에서 DataKeyValues가 null입니다.
<asp:GridView ID="gvHistory" runat="server" DataSourceID="ObjectDataSource"
AutoGenerateColumns="False" CellPadding="10" CellSpacing="5"
CssClass="userHistory" DataKeyNames="formID">
<Columns>
<asp:BoundField DataField="clientName" HeaderText="User" />
<asp:BoundField DataField="formName" HeaderText="Form" />
<asp:BoundField DataField="dateCreated" HeaderText="Date Created" />
<asp:BoundField DataField="dateRevised" HeaderText="Last Revision Date" />
<asp:BoundField DataField="dateSubmitted" HeaderText="Date Submitted" />
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="edit" runat="server" CausesValidation="false" CommandName="editForm"
Text="Edit" OnDataBinding="btnEdit_DataBinding" OnClick="btnEdit_Click" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="delete" runat="server" CausesValidation="false" CommandName=""
Text="Delete" OnDataBinding="btnDelete_DataBinding" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="formID" />
</Columns>
</asp:GridView>
protected void btnEdit_Click(object sender, System.EventArgs e)
{
Session["formID"] = gvHistory.SelectedDataKey.Value;
Label1.Text = Session["formID"].ToString();
}
감사합니다. 이것은 완벽하게 작동했습니다. 죄송합니다. 나는이 질문을, 학기말에, 압력을 가해 야했다. 나는 이것을 얻을 수 있어야 했어. –