<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
各位大哥帮帮我,搞了很久,我快疯了~!
各位大哥帮帮我,搞了很久,我快疯了~!
解决方案 »
- 无法使用前导 .. 在顶级目录上退出,这个错谁解决过。我实在搞不定了
- 有没有办法让vs2008中的calendar控件只能选择月份而不让他选择日?
- 利用moss对象模型访问moss列表数据问题,请高人指点!!!
- Datalist控件多行多列显示时,为什么总是只显示一行多列?
- 请问asp.net 中的错误处理,怎么将所有的错误信息定向到一个文件上?
- 请教自动自动跳转问题
- 请问关于,net调用Excel的问题
- DataGrid输出到excel时,其中所含的中文都是乱码?急 !参与有分!!
- 讨论一个问题!!
- 客户端调用服务器端函数问题
- visual studio.net 的序列号在哪张光盘?
- 想结识一下各位武林同道。共同探讨技术、IT、理想、事业及未来
<Columns>
<asp:EditCommandColumn EditText="编辑" CancelText="取消" UpdateText="更新" ItemStyle-Wrap="false"/>
</Columns>
CommandName在哪里设置?
我看我和ms的例子一样的啊,它是对的我久不可以,郁闷~!
BindGrid();
}
{
list=TUser.Find(-1);
UserClass.Items.Clear();
for(int i=0;i<KUser.count;i++)
{
UserClass.Items.Add(new ListItem(KUser.GetName(i),i.ToString()));
}
bool bValid=true;
if(Session["class"]==null)
bValid=false;
if(Convert.ToInt32(Session["class"])<2)
bValid=false;
if(!bValid)
Response.Redirect("error.htm");
BindGrid();
}
public void BindGrid()
{
DataTable dt=new DataTable();
DataRow dr; dt.Columns.Add(new DataColumn("ID", typeof(Int32)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Columns.Add(new DataColumn("Password", typeof(string)));
dt.Columns.Add(new DataColumn("EMail", typeof(string)));
dt.Columns.Add(new DataColumn("Class", typeof(Int32))); for(int i=0;i<list.Count;i++)
{
dr=dt.NewRow();
dr["ID"]=((DUser)(list[i])).ID;
dr["Name"]=((DUser)(list[i])).Name;
dr["Password"]=((DUser)(list[i])).Password;
dr["EMail"]=((DUser)(list[i])).EMail;
dr["Class"]=((DUser)(list[i])).Class;
dt.Rows.Add(dr);
}
MyDataGrid.DataSource=dt.DefaultView;
MyDataGrid.DataBind();
} public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
{
int id=Convert.ToInt32(MyDataGrid.DataKeys[(int)e.Item.ItemIndex]);
DUser u=new DUser();
u.ID=id;
u.Name=((TextBox)e.Item.Cells[1].Controls[0]).Text;
u.Password=((TextBox)e.Item.Cells[2].Controls[0]).Text;
u.EMail=((TextBox)e.Item.Cells[3].Controls[0]).Text;
u.Class=Convert.ToInt32(((DropDownList)e.Item.Cells[4].Controls[0]).SelectedItem.Value);
if(!TUser.Modify(u))
Message.Text="Update failed!";
else
Message.Text="Update successfully!";
list=TUser.Find(-1);
MyDataGrid.EditItemIndex = -1;
BindGrid();
} public void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs E)
{
Message.Text=E.CommandName;
MyDataGrid.EditItemIndex = (int)E.Item.ItemIndex;
BindGrid();
DropDownList tempList = (DropDownList)MyDataGrid.Items[E.Item.ItemIndex].FindControl("edit_Class");
tempList.Items.Clear();
for(int i=0;i<KUser.count;i++)
tempList.Items.Add(new ListItem(KUser.GetName(i),i.ToString()));
}
public void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = -1;
BindGrid();
}
BackColor="#CCCCFF"
BorderColor="Black"
CellPadding="3"
Font-Name="宋体"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
EnableViewState="False"
OnUpdateCommand="MyDataGrid_Update"
OnEditCommand="MyDataGrid_Edit"
OnCancelCommand="MyDataGrid_Cancel"
AutoGenerateColumns="False"
DataKeyField="ID"
Font-Names="宋体" PageSize="20" AllowPaging="True">
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit" ItemStyle-Wrap="false"/>
<asp:BoundColumn DataField="ID" ReadOnly="True" HeaderText="ID"/>
<asp:TemplateColumn HeaderText="Name">
<ItemTemplate>
<asp:Label runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Name")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="edit_Name" Text='<%#DataBinder.Eval(Container.DataItem,"Name")%>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Password">
<ItemTemplate>
<asp:Label runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Password")%>' /> </ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="edit_Password" Text='<%#DataBinder.Eval(Container.DataItem,"Password")%>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="EMail">
<ItemTemplate>
<asp:Label runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"EMail")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="edit_EMail" Text='<%#DataBinder.Eval(Container.DataItem,"EMail")%>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Class">
<ItemTemplate>
<asp:Label runat="server" Text='<%#KUser.GetName((int)DataBinder.Eval(Container.DataItem,"Class"))%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList runat="server" id="edit_Class" SelectedIndex='<%#DataBinder.Eval(Container.DataItem,"Class")%>'/>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</ASP:DataGrid>
list是个ArrayList
你可以在EditItemTemplate加入更新按钮
<ASP:Button CommandName="Update" id='UpdateButton' Text="Update" runat="server" />
这样做还有个好处就是可以对验证输入值!
你可以在EditItemTemplate加入更新按钮
<ASP:Button CommandName="Update" id='UpdateButton' Text="Update" runat="server" />
这样做还有个好处就是可以对验证输入值!
问题是为什么QuickStart的例子是对的,他也用EditItemTemplate
BindGrid();你真是这样写的??
BindGrid();你确认是这样写的吗?
BindGrid();
你确信是这样写的吗?
我没有判断,判断的话我发现就什么也没有了,因为我点Edit时候,首先调用了Page_OnLoad(),我怀疑事件调用混乱了~!
非常感谢yellowwee(端木柒)!