高分求方法

zhangxc 2004-08-25 04:03:08
問題是,在.NET裏面用DATAGRID顯示數據,我在.NET 裏面用模板來顯不數據.比如說是TEXTBOX,我想在輸入完成後能夠激發TextChanged的事件,不知道應該如何去處理他,希望大家幫我出一出主意,或者有誰做與這相關的,發帖子幫一下,比較急,
我的MSN是:YC_Gavin@hotmail.com
...全文
107 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxc 2004-08-27
  • 打赏
  • 举报
回复
非常感謝上面的這位老兄,我的問題已經解決了
marvelstack 2004-08-25
  • 打赏
  • 举报
回复
在DataGrid的ItemCommand事件中处理,
如:
private void DataListRoles_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
DataList dl = (DataList)source;
//DataList dl = (DataList)e.Item.Parent;
int roleID = (int)dl.DataKeys[e.Item.ItemIndex];
switch(e.CommandName)
{
case "Edit":
this.DataListRoles.EditItemIndex = e.Item.ItemIndex;
break;
case "Delete":
AccountSystem.DeleteRole(roleID);
break;
case "Cancel":
this.DataListRoles.EditItemIndex = -1;
break;
case "Update":
TextBox roleName = (TextBox)e.Item.FindControl("TextboxRoleName");
TextBox description = (TextBox)e.Item.FindControl("TextboxDescription");
AccountSystem.UpdateRole(roleID,roleName.Text,description.Text);
this.DataListRoles.EditItemIndex = -1;
break;
}
BindRolesData();
}
qingyun1020 2004-08-25
  • 打赏
  • 举报
回复
哈,学习了
wacle 2004-08-25
  • 打赏
  • 举报
回复
上面写错了
txtCol.TextBox.Click+=new EventHandler(txtCol_Click);
->>
txtCol.TextBox.TextChanged+=new EventHandler(txtCol_TextChanged);
wacle 2004-08-25
  • 打赏
  • 举报
回复
还有,WINFORM下实现起来相对复杂些,但基本原理是一样的:
我是这样来实现的,在绑定datagrid前,先设置他的TableStyle

private void SetTableStyle()
{
DataGridTableStyle ts=new DataGridTableStyle();
ts.MappingName="WebFaultListTable";
DataGridTextBoxColumn txtCol=new DataGridTextBoxColumn();
txtCol.MappingName="[列1].Name";
txtCol.HeaderText="[列1].Name";
txtCol.Width=100;
txtCol.TextBox.Click+=new EventHandler(txtCol_Click);
...//添加其它列
ts.GridColumnStyles.Add(txtCol);
... //添加其他TextBox列
dgrd.TableStyles.Add(ts);
}

private void txtCol_TextChanged(object sender, System.EventArgs e)
{
...
}
wacle 2004-08-25
  • 打赏
  • 举报
回复
哎,很就没搞asp.net了,有些不敢回答了,大致记得是这样的:
在datagrid的itemcreated事件里,人工添加
void datagrid_itemcreated(...)
{
if(e.item.itemtype==listitem.alternatingitem ||
e.item.itemtype==listitem.item)
{
TextBox textbox=(TextBox)item.cells[i].controls[1];
textbox.textchanged+=new eventhandler(textbox_textchanged); //声明事件
}
}

void textbox_changed(object sender,eventargs e)
{
... //定义事件主体
}
ajqc 2004-08-25
  • 打赏
  • 举报
回复
ASPX的吧?
还是WIN的?
ASPX的好办,在客户端用JSCPIT来处理
WIN的不好办.WIN的只能在CurrentCellChanged事件里处理,不然的话要重写DATAGRID,超麻烦.
如果是为了判断输入类型合要求不的话,此举可以省略,DATAGRID只要是捆绑了DATASET就会自动判定那个CELL一失去焦点就自动验证类型不对就清空
thinkingforever 2004-08-25
  • 打赏
  • 举报
回复
以后用简体,有点费劲.
在模板列中放TEXTBOX,在CS文件中给它的事件和方法进行帮顶
可以在DATAGRID的ItemCommand,ItemCreated,ItemDataBound方法中帮顶

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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