datagrid的问题 请教高手,在datagrid中,我点了datagrid中的编辑按钮,会在各个列出现文本筐让你修改,请问我怎么用正则表达式控制这文本筐的输入格式呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把验证控件放在TextBox所在的模板编辑列中即可! 能具体点好吗,那个textbox不是我脱上去的,是点了编辑以后自己出来的,我那一列是绑定了一个字段,好像不是模板列 如果我把该列改成模板列,那(System.Web.UI.WebControls.TextBox)e.Item.Cells[2].Controls[0]).Text.Trim();好像就取不到值了 ((TextBox)e.Item.FindControl("TextboxXXX")).Text.Trim(); 页面<asp:TextBox id="st" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.SEND_TIME") %>'>程序string dd=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text;异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。 把绑定TextBox的完整语句和设置的完整语句粘贴出来看看? 页面:<asp:TemplateColumn HeaderText="发送时间"><ItemTemplate><asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.SEND_TIME") %>'></asp:Label></ItemTemplate><EditItemTemplate><asp:TextBox runat="server" id="st" Text='<%# DataBinder.Eval(Container,"DataItem.SEND_TIME") %>'></asp:TextBox><asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ValidationExpression="^((((1[6-9]|0-5]?\d$"ControlToValidate="st" ErrorMessage="时间格式有误" Display="Dynamic"></asp:regularexpressionvalidator></EditItemTemplate>程序:private void dz_DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem ){DateTime dt = DateTime.Now;string dd=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text;}} if (e.Item.ItemType == ListItemType.EditItem){DateTime dt = DateTime.Now;string dd=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text;} 是不报错了,可是我这个判断就不起作用了if (Convert.ToDateTime(((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text) < dt){e.Item.Enabled = false;}else{e.Item.Style.Add("color","red");} } swordragon(古道热肠)你有MSN吗,挺急的,想跟你请教一下,我的是[email protected] private void dz_DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){ DateTime dt = DateTime.Now; bool blnFlag = false; if (e.Item.ItemType == ListItemType.EditItem) { if (Convert.ToDateTime(((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text) < dt) { blnFlag = false; } else { blnFlag = true; } } if (blnFlag) { e.Item.Style.Add("color","red"); } else { e.Item.Enabled = false; }}这样可以吗? 不行,全部都变成灰色的了,还有就是我在private void dz_DataGrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)这些事件中用((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text也是报未将对象引用设置到对象的实例,能加一下我的MSN吗 <EditItemTemplate><asp:TextBox runat="server" id="st" Text='<%# DataBinder.Eval(Container,"DataItem.SEND_TIME") %>'></asp:TextBox><asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ValidationExpression="^((((1[6-9]|0-5]?\d$"ControlToValidate="st" ErrorMessage="时间格式有误" Display="Dynamic"></asp:regularexpressionvalidator></EditItemTemplate>改为:<ItemTemplate><asp:TextBox runat="server" id="st" Text='<%# DataBinder.Eval(Container,"DataItem.SEND_TIME") %>'></asp:TextBox><asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ValidationExpression="^((((1[6-9]|0-5]?\d$"ControlToValidate="st" ErrorMessage="时间格式有误" Display="Dynamic"></asp:regularexpressionvalidator></ItemTemplate>以后,还用你原来的代码试试吧。我这里已经禁止了一切与外界联系的手段,除了几个学习的网站,呵呵 这样出来的页面中datagrid里一出来就有一个text筐,怎么才能象原来一样,是一个平平的表格呢 如果要满足你的要求,就必须使用绑定列。1、修改为绑定列2、ItemDataBound中动态绑定验证表达式private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){ if (e.Item.ItemType == ListItemType.EditItem) { TextBox tb1 = ((System.Web.UI.WebControls.TextBox)e.Item.Cells[x].Controls[0]); RegularExpressionValidator re = new RegularExpressionValidator(); re.ValidationExpression = @"^((((1[6-9]|0-5]?\d$"; re.ControlToValidate = "tb1"; }} 怎么这么复杂啊,给datagrid中的单元加个验证控件,怎么这么难啊 请问VB.NET的exe是否可以嵌入到WEB页面上运行 好难的问题啊,在线等讲解啊,100分求解,各位大侠帮帮忙!!!!!! 单体模式问题 window7 的IIS怎么用 repeater里的checkbox,至少选中一个??怎么判断 求助:用递归遍历文件夹出错,不能遍历子文件夹内容 .net在深圳一般能拿到多少? TEXTBOX插入数据库如何保留格式? 关于类(在线等待) 请高手指教:使用C#暂停Web站点的IIS服务? 急,急,急,,在线等 一个存储过程的问题??
<asp:TextBox id="st" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.SEND_TIME") %>'>
程序
string dd=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text;
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
<asp:TemplateColumn HeaderText="发送时间">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.SEND_TIME") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="st" Text='<%# DataBinder.Eval(Container,"DataItem.SEND_TIME") %>'>
</asp:TextBox>
<asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ValidationExpression="^((((1[6-9]|0-5]?\d$"
ControlToValidate="st" ErrorMessage="时间格式有误" Display="Dynamic"></asp:regularexpressionvalidator>
</EditItemTemplate>
程序:
private void dz_DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem ){
DateTime dt = DateTime.Now;
string dd=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text;}}
{
DateTime dt = DateTime.Now;
string dd=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text;
}
if (Convert.ToDateTime(((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text) < dt)
{
e.Item.Enabled = false;
}
else
{
e.Item.Style.Add("color","red");
} }
{
DateTime dt = DateTime.Now;
bool blnFlag = false;
if (e.Item.ItemType == ListItemType.EditItem)
{
if (Convert.ToDateTime(((System.Web.UI.WebControls.TextBox)e.Item.FindControl("st")).Text) < dt)
{
blnFlag = false;
}
else
{
blnFlag = true;
}
}
if (blnFlag)
{
e.Item.Style.Add("color","red");
}
else
{
e.Item.Enabled = false;
}
}这样可以吗?
<asp:TextBox runat="server" id="st" Text='<%# DataBinder.Eval(Container,"DataItem.SEND_TIME") %>'>
</asp:TextBox>
<asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ValidationExpression="^((((1[6-9]|0-5]?\d$"
ControlToValidate="st" ErrorMessage="时间格式有误" Display="Dynamic"></asp:regularexpressionvalidator>
</EditItemTemplate>改为:<ItemTemplate>
<asp:TextBox runat="server" id="st" Text='<%# DataBinder.Eval(Container,"DataItem.SEND_TIME") %>'>
</asp:TextBox>
<asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ValidationExpression="^((((1[6-9]|0-5]?\d$"
ControlToValidate="st" ErrorMessage="时间格式有误" Display="Dynamic"></asp:regularexpressionvalidator>
</ItemTemplate>以后,还用你原来的代码试试吧。我这里已经禁止了一切与外界联系的手段,除了几个学习的网站,呵呵
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.EditItem)
{
TextBox tb1 = ((System.Web.UI.WebControls.TextBox)e.Item.Cells[x].Controls[0]);
RegularExpressionValidator re = new RegularExpressionValidator();
re.ValidationExpression = @"^((((1[6-9]|0-5]?\d$";
re.ControlToValidate = "tb1";
}
}