GridView自定义控件的传值为空怎么解决?(看孟子E章的一篇文章有问题)在线等!!!

麻酱面条 2007-01-17 07:49:20
《一次编辑 GridView 的所有行》
http://dotnet.aspx.cc/article/a933b187-06c3-4263-9eec-414a54d9c815/read.aspx

这里面有动态给DropDownList下拉选项赋值,这个我实现了,而且可以选定对应于数据库里的DropDownList item选项。

但是在GridView更新时却不能把DropDownList里面选好的item的值保存到数据库里面,其他栏的修改可以保存。
跟踪了一下,发现是更新时取不到DropDownList里面选定的item值,这该怎么办?
我用的是SQLSource的updatecommand命令。

在线等到有结果!!!

...全文
550 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
麻酱面条 2007-01-23
  • 打赏
  • 举报
回复
自己解决了,在更新前直接给sqldatasource的updateparameter对应的字段赋值就可以了。

结贴,感谢孟子E章和帮顶的朋友。
麻酱面条 2007-01-21
  • 打赏
  • 举报
回复
问题还未解决,大家帮忙吧!
losteveb 2007-01-18
  • 打赏
  • 举报
回复
帮顶
麻酱面条 2007-01-18
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class ManageSys_Auditing : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string usrrole = Session["urrole"].ToString();
if(usrrole.Trim() != "admin")
{
Response.Redirect("NoAccess.htm");
}
}

string[] ClassNameArray = { "admin", "manager", "guest" };

protected void GdVewAudit_RowDataBound(object sender, GridViewRowEventArgs e)
{
//创建行数据时把权限改成下拉列表,下面是绑定数据

if (e.Row.RowType == DataControlRowType.DataRow)
{
System.Data.DataRowView drv = (System.Data.DataRowView)e.Row.DataItem;
DropDownList ddl = (DropDownList)e.Row.FindControl("ddlrole");
if (ddl != null) {

ddl.Items.FindByText(drv.Row.ItemArray[2].ToString().Trim().ToLower()).Selected = true;
}
Label1.Text = drv.Row.ItemArray[2].ToString().ToLower().Trim()+ " " +Label1.Text;
}

}

protected void GdVewAudit_RowCreated(object sender, GridViewRowEventArgs e)
{
//
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl = (DropDownList)e.Row.FindControl("ddlrole");
ddl.DataSource = ClassNameArray;
ddl.DataBind();
}

}
protected void GdVewAudit_RowCommand(object sender, GridViewCommandEventArgs e)
{
/*
if (e.CommandName == "Edit")
{
ddl.Enabled = true;
}
else
{
ddl.Enabled = false;
}*/
//Label1.Text = "GdVewAudit_RowCommand";
}
}
-------------------------
这是 .cs文件。

帮忙看看吧,多谢!
麻酱面条 2007-01-18
  • 打赏
  • 举报
回复
还是不行,我贴一下源码吧。
-------------------------------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Auditing.aspx.cs" Inherits="ManageSys_Auditing" EnableViewState="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Auditing</title>
</head>
<body>
<form id="frm_Auditing" runat="server">
<div style="width:99%; text-align:center; margin-top:10px;">
<asp:SqlDataSource ID="SqlDSAudit" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DELETE FROM [users] WHERE [id] = @original_id"
UpdateCommand ="UPDATE [users] SET [role] = @role, [usable] = @usable WHERE [id] = @original_id"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [users] ORDER BY [id], [regtime], [dept]" >
<DeleteParameters>
<asp:Parameter Name="original_id" Type="String" />
<asp:Parameter Name="original_role" Type="String" />
<asp:Parameter Name="original_dept" Type="String" />
<asp:Parameter Name="original_phone" Type="String" />
<asp:Parameter Name="original_usable" Type="Boolean" />
<asp:Parameter Name="original_regtime" Type="DateTime" />
<asp:Parameter Name="original_comment" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="role" Type="String" DefaultValue="guest" />
<asp:Parameter Name="dept" Type="String" />
<asp:Parameter Name="phone" Type="String" />
<asp:Parameter Name="usable" Type="Boolean" DefaultValue="False" />
<asp:Parameter Name="regtime" Type="DateTime" />
<asp:Parameter Name="comment" Type="String" />
<asp:Parameter Name="original_id" Type="String" />
<asp:Parameter Name="original_pwd" Type="String" />
<asp:Parameter Name="original_role" Type="String" />
<asp:Parameter Name="original_dept" Type="String" />
<asp:Parameter Name="original_phone" Type="String" />
<asp:Parameter Name="original_usable" Type="Boolean" />
<asp:Parameter Name="original_regtime" Type="DateTime" />
<asp:Parameter Name="original_comment" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:GridView ID="GdVewAudit" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDSAudit" PageSize="14" CellPadding="4" ForeColor="#333333" GridLines="None" SkinID="blue" OnRowCreated="GdVewAudit_RowCreated" OnRowDataBound="GdVewAudit_RowDataBound" OnRowCommand="GdVewAudit_RowCommand" >
<Columns>
<asp:BoundField DataField="id" HeaderText="用户名" ReadOnly="True" SortExpression="id" />

<asp:TemplateField SortExpression="role" HeaderText="权限">
<ItemTemplate>
<asp:DropDownList ID="ddlrole" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>

<asp:BoundField DataField="dept" HeaderText="单位" SortExpression="dept" ReadOnly="True" />
<asp:BoundField DataField="phone" HeaderText="联系方式" SortExpression="phone" ReadOnly="True" />
<asp:CheckBoxField DataField="usable" HeaderText="是否开通" SortExpression="usable" />
<asp:BoundField DataField="regtime" HeaderText="注册日期" SortExpression="regtime" ReadOnly="True" />
<asp:BoundField DataField="comment" HeaderText="备注" SortExpression="comment" ReadOnly="True" />
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="White" Font-Bold="True" ForeColor="#333333" BorderColor="Blue" BorderStyle="Solid" BorderWidth="1px" />
<PagerStyle BackColor="#FBFFFA" ForeColor="Black" HorizontalAlign="Center" BorderColor="White" BorderStyle="None" BorderWidth="0px" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
麻酱面条 2007-01-17
  • 打赏
  • 举报
回复
补充一下,我用的是GridView自带的 编辑 更新命令,而且针对的是一条,没有批量更新。
孟子E章 2007-01-17
  • 打赏
  • 举报
回复
<%@ Page EnableViewState = "true"%>

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧