急!!!datagrid中DropDownList选择其中一项。其他单元格更新的问题?? 我要用datagird进行编辑,datagrid中有DropDownList。选取DropDownList中的其他项。相应的cell中的值进行更新。不是所有的cell都更新。其中的一个或者两个。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <asp:TemplateColumn> <ItemTemplate> <asp:DropDownList id="DropDownList1" runat="server"> <asp:ListItem Value="AAA">AAA</asp:ListItem> <asp:ListItem Value="BBB">BBB</asp:ListItem> <asp:ListItem Value="CCC">CCC</asp:ListItem> </asp:DropDownList> </ItemTemplate> </asp:TemplateColumn>********************************private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemIndex>-1)//如果dropdownlist是放在<EditItemTemplate>,那么这个判断条件改为if(e.Item.ItemType == ListItemType.EditItem) { ((DropDownList)e.Item.FindControl("DropDownList1")).Attributes.Add("onchange","this.parentElement.parentElement.cells[0].innerHTML = ddlst.value;"); } } 上面有小错误,修正:<asp:TemplateColumn> <ItemTemplate> <asp:DropDownList id="DropDownList1" runat="server"> <asp:ListItem Value="AAA">AAA</asp:ListItem> <asp:ListItem Value="BBB">BBB</asp:ListItem> <asp:ListItem Value="CCC">CCC</asp:ListItem> </asp:DropDownList> </ItemTemplate> </asp:TemplateColumn>********************************private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemIndex>-1)//如果dropdownlist是放在<EditItemTemplate>,那么这个判断条件改为if(e.Item.ItemType == ListItemType.EditItem) { ((DropDownList)e.Item.FindControl("DropDownList1")).Attributes.Add("onchange","this.parentElement.parentElement.cells[0].innerHTML = this.value;"); } } 谢谢Eddie005(♂) 暴赱 『零零伍』(︶︵︶) ( ) 我已经在datagrid中赋值了数据。有的能编辑有的不能。如下所示。我选择的劳务名称其中的一项。额定小分要进行变化 <asp:BoundColumn DataField="zgbh" HeaderText="员工编号"></asp:BoundColumn> <asp:BoundColumn DataField="zgxm" HeaderText="职工姓名"></asp:BoundColumn> <asp:TemplateColumn HeaderText="劳务名称"> <ItemTemplate> <asp:DropDownList id=DropDownList1 AutoPostBack="True" runat="server" OnSelectedIndexChanged="DropDownListChange" DataSource="<%# initdatatable() %>" DataTextField="lwmc" DataValueField="lwbh"> </asp:DropDownList> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="额定小分"> <ItemTemplate> <asp:Label id=lbledxf runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.edxf") %>'> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox id=TextBox3 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.edxf") %>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="调整比例"> <ItemTemplate> <asp:TextBox id=txttzbl runat="server" Width="70px" Text='<%# DataBinder.Eval(Container, "DataItem.tzbl") %>'> </asp:TextBox> </ItemTemplate> </asp:TemplateColumn> 因为用javascript实现效果比较好,不用刷新,所以我还是主张用js实现:把上面的代码改一下:private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemIndex>-1) { ((DropDownList)e.Item.FindControl("DropDownList1")).Attributes.Add("onchange","selected(this);"); } }**********<script language="javascript"> function selected(ddlst) { //ddlst.parentElement.parentElement.cells[0].innerHTML = ddlst.value; var objLabel = document.getElementById(ddlst.id.replace("DropDownList1","lbledxf")); var objTextBox1 = document.getElementById(ddlst.id.replace("DropDownList1","TextBox3")); var objTextBox2 = document.getElementById(ddlst.id.replace("DropDownList1","txttzbl")); if(objLabel!=null) objLabel.innerHTML = ddlst.value; if(objTextBox1!=null) objTextBox1.value = ddlst.value; if(objTextBox2!=null) objTextBox1.value = ddlst.value; //作为例子,仅仅是将当前行几处的值改为选中的劳务名称,至于lz需要如何根据劳务名称调整比例你自己扩充吧 } </script> 关于response.write不在body内的困难 看看有几个做错了 关于字符串截取的问题!急! 关于通过方火墙得到访问者真实IP的问题 日历控件 哪有vs2005和2003下载呀 请教一个aspx页面有效期及缓存的问题 ASP.NET服务停止,100分 请问大家,我的网页每刷新一次就会生成一个图片,我怎么来删除这个图片??? 我用的验证控件在本地运行可以,但打包后就不行了,没有通过验证就可以执行到服务器端这是为什么呀??? 在网上找的GridView自定义分页模板完整代码,修改了一下,还是有问题,请高手帮忙看看~! 时间格式化问题
<ItemTemplate>
<asp:DropDownList id="DropDownList1" runat="server">
<asp:ListItem Value="AAA">AAA</asp:ListItem>
<asp:ListItem Value="BBB">BBB</asp:ListItem>
<asp:ListItem Value="CCC">CCC</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
********************************
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemIndex>-1)//如果dropdownlist是放在<EditItemTemplate>,那么这个判断条件改为if(e.Item.ItemType == ListItemType.EditItem)
{
((DropDownList)e.Item.FindControl("DropDownList1")).Attributes.Add("onchange","this.parentElement.parentElement.cells[0].innerHTML = ddlst.value;");
}
}
<asp:TemplateColumn>
<ItemTemplate>
<asp:DropDownList id="DropDownList1" runat="server">
<asp:ListItem Value="AAA">AAA</asp:ListItem>
<asp:ListItem Value="BBB">BBB</asp:ListItem>
<asp:ListItem Value="CCC">CCC</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
********************************
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemIndex>-1)//如果dropdownlist是放在<EditItemTemplate>,那么这个判断条件改为if(e.Item.ItemType == ListItemType.EditItem)
{
((DropDownList)e.Item.FindControl("DropDownList1")).Attributes.Add("onchange","this.parentElement.parentElement.cells[0].innerHTML = this.value;");
}
}
如下所示。我选择的劳务名称其中的一项。额定小分要进行变化
<asp:BoundColumn DataField="zgbh" HeaderText="员工编号"></asp:BoundColumn>
<asp:BoundColumn DataField="zgxm" HeaderText="职工姓名"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="劳务名称">
<ItemTemplate>
<asp:DropDownList id=DropDownList1 AutoPostBack="True" runat="server" OnSelectedIndexChanged="DropDownListChange" DataSource="<%# initdatatable() %>" DataTextField="lwmc" DataValueField="lwbh">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="额定小分">
<ItemTemplate>
<asp:Label id=lbledxf runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.edxf") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox3 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.edxf") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="调整比例">
<ItemTemplate>
<asp:TextBox id=txttzbl runat="server" Width="70px" Text='<%# DataBinder.Eval(Container, "DataItem.tzbl") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
把上面的代码改一下:
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemIndex>-1)
{
((DropDownList)e.Item.FindControl("DropDownList1")).Attributes.Add("onchange","selected(this);");
}
}**********
<script language="javascript">
function selected(ddlst)
{
//ddlst.parentElement.parentElement.cells[0].innerHTML = ddlst.value;
var objLabel = document.getElementById(ddlst.id.replace("DropDownList1","lbledxf"));
var objTextBox1 = document.getElementById(ddlst.id.replace("DropDownList1","TextBox3"));
var objTextBox2 = document.getElementById(ddlst.id.replace("DropDownList1","txttzbl"));
if(objLabel!=null) objLabel.innerHTML = ddlst.value;
if(objTextBox1!=null) objTextBox1.value = ddlst.value;
if(objTextBox2!=null) objTextBox1.value = ddlst.value;
//作为例子,仅仅是将当前行几处的值改为选中的劳务名称,至于lz需要如何根据劳务名称调整比例你自己扩充吧
}
</script>