建站中,点击更新时怀疑RadioButtonList取值没成功,望各位大大帮忙看看
源错误:
行 147: {
行 148: string id = e.CommandArgument.ToString();
行 149: string audit = auditrbl.SelectedItem.Value.ToString();
行 150: string level = levelrbl.SelectedItem.Value.ToString();
行 151: string str = "UPDATE T_Member SET [F_Audit]=" + audit + ",[F_Level]=" + level + ";";源文件: j:\Sam‘s Work1\MemberMain.aspx.cs 行: 149 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
MemberMain.GridView_RowCommand(Object sender, GridViewCommandEventArgs e) in j:\Sam‘s Work1\MemberMain.aspx.cs:149
System.Web.UI.WebControls.GridView.OnRowCommand(GridViewCommandEventArgs e) +108
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +112
System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565 <asp:TemplateField HeaderText="审核状态">
<ItemTemplate>
<asp:Label ID="lblaudit" runat="server" Text='<%# Eval("F_Audit") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:RadioButtonList ID="AuditRBL" runat="server" RepeatDirection="Vertical" AutoPostBack="true" AppendDataBoundItems="true">
<asp:ListItem Value="0" Text="未通过"></asp:ListItem>
<asp:ListItem Value="1" Text="已通过"></asp:ListItem>
</asp:RadioButtonList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="级别">
<ItemTemplate>
<asp:Label ID="lbllevel" runat="server" Text='<%# Eval("F_Level") %>' ></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:RadioButtonList ID="LevelRBL" runat="server" RepeatDirection="Horizontal" AutoPostBack="true" AppendDataBoundItems="true">
<asp:ListItem Value="0" Text="普通会员"></asp:ListItem>
<asp:ListItem Value="1" Text="ViP"></asp:ListItem>
</asp:RadioButtonList>
</EditItemTemplate>
</asp:TemplateField>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
pagebind();
}
}
private void pagebind()
{
string str = "SELECT * FROM T_Member";
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(str, olecon);
da.Fill(ds,"T_Member");
rowCount = ds.Tables["T_Member"].Rows.Count;
GridView1.DataSource = ds;
GridView1.DataKeyNames = new string[]{"Member_ID"};
GridView1.DataBind();
olecon.Close();
}
protected void GridView_RowDataBound(object sender,GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
numCount++;
if (e.Row.RowIndex == GridView1.EditIndex)
{
DataRowView rowItem = (DataRowView)e.Row.DataItem;
if (rowItem["Member_ID"] != DBNull.Value)
{ RadioButtonList auditrbl = (RadioButtonList)e.Row.FindControl("AuditRBL");
auditrbl.SelectedIndex = (Convert.ToInt32(rowItem["F_Audit"]));
}
if (rowItem["Member_ID"] != DBNull.Value)
{ RadioButtonList levelrbl = (RadioButtonList)e.Row.FindControl("LevelRBL");
levelrbl.SelectedIndex = (Convert.ToInt32(rowItem["F_Level"]));
}
}
}
if (e.Row.RowType == DataControlRowType.Footer)
{
int toLeft = TotalRowCount - numCount;
int numCols = GridView1.Rows[0].Cells.Count; for (int i = 0; i < toLeft; i++)
{
GridViewRow row = new GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
for (int j = 0; j < numCols; j++)
{
TableCell cell = new TableCell();
cell.Text = " ";
row.Cells.Add(cell);
}
GridView1.Controls[0].Controls.AddAt(numCount + 1 + i, row);
}
}
}
protected void RowEditing(object sender,GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
pagebind();
}
protected void GridView_RowCommand(object sender,GridViewCommandEventArgs e)
{
RadioButtonList auditrbl = (RadioButtonList)GridView1.FindControl("AuditRBL");
RadioButtonList levelrbl = (RadioButtonList)GridView1.FindControl("LevelRBL");
if (e.CommandName == "update")
{
string id = e.CommandArgument.ToString();
string audit = auditrbl.SelectedItem.Value.ToString();
string level = levelrbl.SelectedItem.Value.ToString();
string str = "UPDATE T_Member SET [F_Audit]=" + audit + ",[F_Level]=" + level + ";";
olecmd = new OleDbCommand(str, olecon);
olecon.Open();
olecmd.ExecuteNonQuery();
olecon.Close();
}
}
源错误:
行 147: {
行 148: string id = e.CommandArgument.ToString();
行 149: string audit = auditrbl.SelectedItem.Value.ToString();
行 150: string level = levelrbl.SelectedItem.Value.ToString();
行 151: string str = "UPDATE T_Member SET [F_Audit]=" + audit + ",[F_Level]=" + level + ";";源文件: j:\Sam‘s Work1\MemberMain.aspx.cs 行: 149 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
MemberMain.GridView_RowCommand(Object sender, GridViewCommandEventArgs e) in j:\Sam‘s Work1\MemberMain.aspx.cs:149
System.Web.UI.WebControls.GridView.OnRowCommand(GridViewCommandEventArgs e) +108
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +112
System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565 <asp:TemplateField HeaderText="审核状态">
<ItemTemplate>
<asp:Label ID="lblaudit" runat="server" Text='<%# Eval("F_Audit") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:RadioButtonList ID="AuditRBL" runat="server" RepeatDirection="Vertical" AutoPostBack="true" AppendDataBoundItems="true">
<asp:ListItem Value="0" Text="未通过"></asp:ListItem>
<asp:ListItem Value="1" Text="已通过"></asp:ListItem>
</asp:RadioButtonList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="级别">
<ItemTemplate>
<asp:Label ID="lbllevel" runat="server" Text='<%# Eval("F_Level") %>' ></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:RadioButtonList ID="LevelRBL" runat="server" RepeatDirection="Horizontal" AutoPostBack="true" AppendDataBoundItems="true">
<asp:ListItem Value="0" Text="普通会员"></asp:ListItem>
<asp:ListItem Value="1" Text="ViP"></asp:ListItem>
</asp:RadioButtonList>
</EditItemTemplate>
</asp:TemplateField>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
pagebind();
}
}
private void pagebind()
{
string str = "SELECT * FROM T_Member";
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(str, olecon);
da.Fill(ds,"T_Member");
rowCount = ds.Tables["T_Member"].Rows.Count;
GridView1.DataSource = ds;
GridView1.DataKeyNames = new string[]{"Member_ID"};
GridView1.DataBind();
olecon.Close();
}
protected void GridView_RowDataBound(object sender,GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
numCount++;
if (e.Row.RowIndex == GridView1.EditIndex)
{
DataRowView rowItem = (DataRowView)e.Row.DataItem;
if (rowItem["Member_ID"] != DBNull.Value)
{ RadioButtonList auditrbl = (RadioButtonList)e.Row.FindControl("AuditRBL");
auditrbl.SelectedIndex = (Convert.ToInt32(rowItem["F_Audit"]));
}
if (rowItem["Member_ID"] != DBNull.Value)
{ RadioButtonList levelrbl = (RadioButtonList)e.Row.FindControl("LevelRBL");
levelrbl.SelectedIndex = (Convert.ToInt32(rowItem["F_Level"]));
}
}
}
if (e.Row.RowType == DataControlRowType.Footer)
{
int toLeft = TotalRowCount - numCount;
int numCols = GridView1.Rows[0].Cells.Count; for (int i = 0; i < toLeft; i++)
{
GridViewRow row = new GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
for (int j = 0; j < numCols; j++)
{
TableCell cell = new TableCell();
cell.Text = " ";
row.Cells.Add(cell);
}
GridView1.Controls[0].Controls.AddAt(numCount + 1 + i, row);
}
}
}
protected void RowEditing(object sender,GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
pagebind();
}
protected void GridView_RowCommand(object sender,GridViewCommandEventArgs e)
{
RadioButtonList auditrbl = (RadioButtonList)GridView1.FindControl("AuditRBL");
RadioButtonList levelrbl = (RadioButtonList)GridView1.FindControl("LevelRBL");
if (e.CommandName == "update")
{
string id = e.CommandArgument.ToString();
string audit = auditrbl.SelectedItem.Value.ToString();
string level = levelrbl.SelectedItem.Value.ToString();
string str = "UPDATE T_Member SET [F_Audit]=" + audit + ",[F_Level]=" + level + ";";
olecmd = new OleDbCommand(str, olecon);
olecon.Open();
olecmd.ExecuteNonQuery();
olecon.Close();
}
}
解决方案 »
- 创建控件出错,sidebarzone服务器标记的格式不正确
- DetailsView在模板页中出错,救救我啊,在线等,急急急!!!
- Repeater生成的表格IE9显示异常
- Session取不到值
- 求一个关于 用QueryString 查询的问题
- 30分挑战,实现javascript取datagrid的值
- 怎么给用户控件中的隐藏域付值?????????????????????????
- 怎样设计使用户界面有好的扩展性。
- 经常出现这种错误,该怎么办?
- 怎样调整ASP.NET WEB控件的文字位置~?
- 编译器错误消息: CS0118: “System.Web.UI.Timer”是“类型”,但此处被当做“变量”来使用
- 怎么把数据库查询的数据集放添加到arraylist中。
字母大小写问题。
protected void GridView_RowCommand(object sender,GridViewCommandEventArgs e)
{
RadioButtonList auditrbl = (RadioButtonList)GridView1.FindControl("AuditRBL");
RadioButtonList levelrbl = (RadioButtonList)GridView1.FindControl("LevelRBL");
...
}--------------------------------------->红色部分改为RadioButtonList auditrbl = (RadioButtonList)e.Row.FindControl("AuditRBL");
RadioButtonList levelrbl = (RadioButtonList)e.Row.FindControl("LevelRBL");
给点击的按钮CommandName,CommandArgument比如:
CommandName="Increase"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" Command事件中
if(e.CommandName=="Increase")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = ProductsGridView.Rows[index];
RadioButtonList auditrbl = (RadioButtonList)row.FindControl("AuditRBL");
RadioButtonList levelrbl = (RadioButtonList)row.FindControl("LevelRBL");
}
foreach (GridViewRow grow in GridView1.Rows)
{
RadioButtonList auditrbl = (RadioButtonList)(grow .FindControl("AuditRBL"));
}