新手问题,怎么才能将datagrid中的指定列设置为编辑状态??? 1. 该列使用模板列 输出结果应该为 input 报单控件 2. 点击修改时,通过取得这些行的数据的ID值进行修改 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. 该列使用模板列 输出结果应该为 input 报单控件 ~~~~~~~~~~~~~~~~~~~~~不是很清楚,希望能说详细点我现在用的是 <asp:TemplateColumn HeaderText="手续费率"> <EditItemTemplate> <input id="c_handcha" type="text" runat="server" value='<%# DataBinder.Eval(Container.DataItem,"c_handcha") %>'> </EditItemTemplate> </asp:TemplateColumn>现在不能实现编辑功能,还有就是value那里能不能这样放入预定值??2. 点击修改时,通过取得这些行的数据的ID值进行修改 需不需要在查询datagrid绑定查询结果的时候加些其他代码呢???? <asp:TemplateColumn HeaderText="手续费率"> <ItemTemplate> <%# ShowEditInput(DataBinder.Eval(Container.DataItem, "id").ToString(), DataBinder.Eval(Container.DataItem, "content").ToString()) %> </ItemTemplate></asp:TemplateColumn>public string ShowEditInput( string strNo , string strContent ){ string reString = ""; reString += "<input name=DataGrid1:_ct"; reString += strNo; reString += ":Textbox1 type=text id=DataGrid1__ct"; reString += strNo; reString += "_Textbox1 value="; reString += strContent; reString += " />"; return reString;} 在private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)事件中进行写出对一行的处理方法,在绑定DataGrid1时自动执行,而且速度很快,要比写其他循环实现快。 谢谢,但是处理首先要取这些列的值啊我用Datagrid1.Items[].Cells[].Text只能取列为boundcolumn列的值,而不能去能编辑的模版列的值。。请问怎么才能取到能编辑列中新输入的值呢???还有就是编辑列的宽度太宽了,不知道怎么调小(我指定了每列的宽度还是不行)??? DataGrid1.SelectedItem 获得当前选定项 不好意思,问个在笨点的问题SelectedItem还是不知道怎么取的他的text或value他好像没有这个属性 在private void DataGrid1_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)中写代码找到你在列中使用的控件,然后再处理 我用过findControl方法,但是找不到,我在列中用的就是用的上面一个兄弟提到过的<input type=text id=****>我用(Text)e.FindControl(*****),他找不到 是用 e.FindControl(****) 或 (TextBox)e.FindControl(***) private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)事件中用e.Item.FindControl("控件Id")要进行强制转换如果控件为TextBox则:(TextBox)e.Item.FindControl("控件Id"),设置宽度可以在dataGrid1属性-》属性生成器-》格式-列设置 winfrom 登录怪问题 winfrom中窗体的滚动条问题 C# 程序切換輸入法時出現錯誤 c#如何检测某文件甲里是否有新文件 有关继承的一个问题 下拉式按钮显示对话框的位置确定 搞 WinForm 的朋友可以看看 如何比较两个 GUID 值生成的时间的先后? 如何屏蔽或更改Alt+F4这样的键盘事件? 反编译DLL文件错误,提示“无法显示调用运算符或访问器” 用户输入的文本怎样自动分行?50分不过在加! 再用10分问个小问题,关于操作xml的!
~~~~~~~~~~~~~~~~~~~~~不是很清楚,希望能说详细点
我现在用的是
<asp:TemplateColumn HeaderText="手续费率">
<EditItemTemplate>
<input id="c_handcha" type="text" runat="server" value='<%# DataBinder.Eval(Container.DataItem,"c_handcha") %>'>
</EditItemTemplate>
</asp:TemplateColumn>
现在不能实现编辑功能,还有就是value那里能不能这样放入预定值??
2. 点击修改时,通过取得这些行的数据的ID值进行修改
<ItemTemplate>
<%# ShowEditInput(DataBinder.Eval(Container.DataItem, "id").ToString(), DataBinder.Eval(Container.DataItem, "content").ToString()) %>
</ItemTemplate>
</asp:TemplateColumn>public string ShowEditInput( string strNo , string strContent )
{
string reString = "";
reString += "<input name=DataGrid1:_ct";
reString += strNo;
reString += ":Textbox1 type=text id=DataGrid1__ct";
reString += strNo;
reString += "_Textbox1 value=";
reString += strContent;
reString += " />";
return reString;
}
我用Datagrid1.Items[].Cells[].Text只能取列为boundcolumn列的值,而不能去能编辑的模版列的值。。请问怎么才能取到能编辑列中新输入的值呢???还有就是编辑列的宽度太宽了,不知道怎么调小(我指定了每列的宽度还是不行)???
SelectedItem还是不知道怎么取的他的text或value他好像没有这个属性
<input type=text id=****>
我用(Text)e.FindControl(*****),他找不到
用e.Item.FindControl("控件Id")要进行强制转换如果控件为TextBox则:
(TextBox)e.Item.FindControl("控件Id"),设置宽度可以在dataGrid1属性-》属性生成器-》格式-列设置