【发布时间】:2013-10-08 11:26:49
【问题描述】:
我想在一页上有gridview,如下所示
<asp:GridView ID="gvDoctorList" runat="server"
AutoGenerateColumns="False"
DataSourceID="SqlDataSource1"
AllowPaging="True"
AllowSorting="True"
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox runat="server"
ID="chk"
OnCheckedChanged="chk_CheckedChanged"
AutoPostBack="true"/>
<asp:Label runat="server" ID="lblPID" Visible="false" Text='<%# Eval("PatientId") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="PatientId"
HeaderText="PatientId"
SortExpression="PatientId" />
<asp:BoundField DataField="firstname"
HeaderText="firstname"
SortExpression="firstname" />
<asp:BoundField DataField="lastname"
HeaderText="lastname"
SortExpression="lastname" />
<asp:BoundField DataField="sex"
HeaderText="sex"
SortExpression="sex" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MyDatabaseConnectionString %>"
SelectCommand="SELECT [PatientId],[firstname], [lastname], [sex] FROM [PatientDetails]">
</asp:SqlDataSource>
现在我将会话放在复选框更改事件上,如下所示
protected void chk_CheckedChanged(object sender, EventArgs e)
{
GridViewRow row = ((GridViewRow)((Control)sender).Parent.Parent);
string requestid = gvDoctorList.DataKeys[row.RowIndex].Value.ToString();
string cellvalue = row.Cells[1].Text;
Session["pId"] = cellvalue;
}
在另一个页面上,我想获取 session 的值,所以我在另一个页面上做了如下操作
protected void Page_Load(object sender, EventArgs e)
{
if (Session["pId"] != null)
{
lblsession.Text = Session["pId"].ToString();
}
else
{
}
}
但问题是,当我调试复选框更改事件的代码时,特别是在会话行上,它会显示错误,即对象引用未设置为对象的实例。
我不明白哪里错了?
我想要做的是从用户已选中复选框的 gridview 中获取患者 ID 的值....将所选值发送到另一个页面并希望将患者 ID 插入 sql 表中。
请提供任何带有编码或其他好主意的示例。
【问题讨论】:
-
BTW
chk_CheckedChanged事件是否触发? -
是的 chk_CheckedChanged 事件正在触发....
-
不重复的问题....但是它们在会话中没有价值.....下面你可以看到代码
-
protected void chk_CheckedChanged(object sender, EventArgs e) { GridViewRow row = ((GridViewRow)((Control)sender).Parent.Parent);字符串 cellvalue = row.Cells[1].Text;会话 [“pId”] = 单元格值;
标签: c# asp.net session gridview nullreferenceexception