读书人

DataListDropDownList批改

发布时间: 2013-03-01 18:33:02 作者: rapoo

DataList,DropDownList,修改
DataList,DropDownList,批改
DataList在编辑时,根据ID绑—ropDownList,然后修改


<asp:DataList ID="repList" runat="server" Width="98%"
onitemcommand="repList_ItemCommand" DataKeyField="CART_ID"
oncancelcommand="repList_CancelCommand" oneditcommand="repList_EditCommand"
onupdatecommand="repList_UpdateCommand">
<HeaderTemplate>
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0" class="cpborder">
<tr>
<td width="58%" align="center" background="../../images/index_25.jpg" height="28">商品信息</td>
<td width="18%" align="center" background="../../images/index_25.jpg">购买价格</td>
<td width="8%" align="center" background="../../images/index_25.jpg">数量</td>
<td width="16%" align="center" background="../../images/index_25.jpg">操作</td>
</tr>
</HeaderTemplate>
<ItemTemplate>

<tr>
<td height="90" align="center" width="58%">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="35%" rowspan="2" align="center">
<img width="46px" height="47px" class="cpborder" style="max-width: 100%;height: auto;width: auto\9;" src="http://www.reader8.com/UpLoadPic/ProductPic/<%# Eval("PIC_SRC")%>">
</td>
<td width="65%" align="left">
<%# Eval("NAME")%>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ID") %>' Visible="False"></asp:Label>


</td>
</tr>
<tr>
<td align="left" class="qianse">
<%# Eval("SIZES")%>  
<%# Eval("COLOR")%>
</td>
</tr>
</table>
</td>
<td align="center" width="18%">
<span class="redn"><strong>¥<%# Eval("PRICE")%></strong></span></td>
<td align="center" width="8%">
<%# Eval("AMOUNT")%>
</td>
<td align="center" width="16%">
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Edit" >修改</asp:LinkButton>
<asp:LinkButton ID="lbtnDel" runat="server" CommandName="del" CommandArgument='<%# Eval("CART_ID") %>'
OnClientClick="return(confirm('确定删除该项数据吗?'))">删除</asp:LinkButton>
</td>
</tr>
</ItemTemplate>


<EditItemTemplate>
<tr>
<td height="90" align="center" width="58%">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="35%" rowspan="2" align="center">
<img width="46px" height="47px" class="cpborder" style="max-width: 100%;height: auto;width: auto\9;" src="http://www.reader8.com/UpLoadPic/ProductPic/<%# Eval("PIC_SRC")%>">
</td>
<td width="65%" align="left">
<%# Eval("NAME")%>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ID") %>' Visible="False"></asp:Label>
</td>
</tr>
<tr>
<td align="left" class="qianse">
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<%# Eval("COLOR")%>
</td>
</tr>
</table>
</td>
<td align="center" width="18%">


<span class="redn"><strong>¥<%# Eval("PRICE")%></strong></span></td>
<td align="center" width="8%">
<asp:TextBox ID="txtAmout" Text='<%#Eval("AMOUNT")%>' Width="30px" runat="server"></asp:TextBox>
</td>
<td align="center" width="16%">
<asp:LinkButton ID="LinkButton1" Text="更新" CommandName="Update" runat="server"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" Text="取消" CommandName="Cancel" runat="server"></asp:LinkButton>
<asp:LinkButton ID="lbtnDel" runat="server" CommandName="del" CommandArgument='<%# Eval("CART_ID") %>'
OnClientClick="return(confirm('确定删除该项数据吗?'))">删除</asp:LinkButton>
</td>
</tr>
</EditItemTemplate>
</asp:DataList>




//取消
protected void repList_CancelCommand(object source, DataListCommandEventArgs e)
{
repList.EditItemIndex = -1;
InitRpt();//绑定数据
}

//更新
protected void repList_UpdateCommand(object source, DataListCommandEventArgs e)
{
}

//修改
protected void repList_EditCommand(object source, DataListCommandEventArgs e)
{
string ID = ((Label)e.Item.FindControl("Label1")).Text.Trim();
DataSet dr = SizeBLL.GetList(ID);//根据ID得到数据
DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
ddl.DataSource = dr;
ddl.DataBind();
repList.EditItemIndex = e.Item.ItemIndex;


InitRpt();//绑定数据
}



想法是在点修改的时候,根据ID得到数据,绑定到DropDownList1,可以选择然后更新,现在是有错误点修改“未将对象引用到对象实例”

不知道是我哪里写错了,或有更好的方法
[解决办法]
断点下去 看下点击更新的时候 错误是错在了哪一行
[解决办法]
string ID = ((Label)e.Item.FindControl("Label1")).Text.Trim();
DataSet dr = SizeBLL.GetList(ID);//根据ID得到数据
DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
ddl.DataSource = dr;
ddl.DataBind();
repList.EditItemIndex = e.Item.ItemIndex;
InitRpt();//绑定数据


无非就是这几行可能有错误了,你设置断点看一下是哪里没有找到数据。
另外,一般情况下在找进行查数据的时候都要进行判空的
if(dr!=null)
{
//dosth
}
[解决办法]
ddl是null吗?
dr里面的table有数据吗?
[解决办法]
因为在加载时,不是编辑状态,这时DropDownList 还未被在创建,


protected void repList_EditCommand(object source, DataListCommandEventArgs e)
{
if (e.Item.ItemType == ListItemType.EditItem)
{
//加上你的代码
}
}

[解决办法]
好吧。
先隐藏diopdownlist用一个lable显示你想要绑定的数据
<tr>
<td align="left" class="qianse">
<asp:Label ID="Label1" Text='<%# Eval("id") %>' runat="server"></asp:Label>
<asp:DropDownList ID="DropDownList1" runat="server" Visible="false"></asp:DropDownList><%# Eval("COLOR")%></td>
</tr>


protected void repList_EditCommand(object source, DataListCommandEventArgs e)
{
if (e.Item.ItemType == ListItemType.EditItem){
DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
//加上这个,点击更新显示dropdownlist 别忘了后面加上你的绑定
lable1.visiable=false;
ddl.visiable=true;
}
}

[解决办法]
<asp:DataList ID="DataList1" runat="server" DataSourceID="ObjectDataSource1" > <ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text=' <%#Eval("ID") %>' /> <asp:Button ID="Button1" runat="server" Text="提交" onclick="Button1_Click1" /> </ItemTemplate> </asp:DataList>





protected void Button1_Click1(object sender, EventArgs e) {
Button bt = (Button)sender;
bt.Text = "id:" + Server.HtmlEncode(((TextBox)bt.FindControl("TextBox1")).Text);
}



[解决办法]
已经告诉你了,dr是一个空对象. 你在 SizeBLL.GetList(ID) 这里断点.啥都清楚了

读书人网 >asp.net

热点推荐